Decode-it pracuj.pl

Decode-it pracuj.pl
DM
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Witam,

Pytanie robie konkurs na pracuj pl dla siebie i juz kilka godzin mecze dobre rozwiazanie questa 1 ktore nie chce przejsc dalej, macie pomysl w jakiej formie powinny być rozwiązania czy tylko metody czy klasy czy cuś xS

DANE WEJŚCIOWE
W pierwszej linii jedna dodatnia liczba całkowita t≤100 oznaczająca liczba testów (Tom został poproszony o przyniesienie odżywek kilka razy). Następnie t linii, każda zawierająca trzy liczby: c, k, w, gdzie 1≤c,k,w≤100.
br

t [liczba testów]
c k w [liczba metrów, udźwig Toma oraz waga nawozu]
c k w [następny test]

DANE WYJŚCIOWE
Wypisz t linii zawierających słowo “yes” jeśli Tom jest w stanie wykonać zadanie lub “no” jeśli nawóz przeciąży go i nie dałby rady go donieść.

edytowany 2x, ostatnio: kq
kq
używaj poprawnych tagów.
DM
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Dobra bierze pod uwage zwykłego Scannera w Javie lecz nie wiem o co chodzi z JS dalej ani Php sprawdze i dam znać przykład inputa z questa numer 1 nie optymalny ale dziala xD

Scanner scanner = new Scanner(System.in);
String num = scanner.nextLine();
String[] numersStr = num.split(" ");
int[] numers = {0,0};

    for(int i = 0; i < 2; i++){
        numers[i] = Integer.parseInt(numersStr[i]);
    }

    System.out.println(Soroban(numers[0], numers[1]));

    scanner.close();
DM
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0
Kopiuj
import java.util.Scanner;

class Quest0{

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int t = scanner.nextInt();

        String num = scanner.nextLine();
        String[] numersStr = {"0","0","0"};
        for(int i = 0; i < t; i++){

            num = scanner.nextLine();
            numersStr = num.split(" ");
            int[] numers = {0,0,0};
            
            for(int j = 0; j < numersStr.length; j++){
                numers[j] = Integer.parseInt(numersStr[j]);
            }
    
            System.out.println(Test(numers[0], numers[1], numers[2]));
        }    
            scanner.close();
    }
    
        private static String Test(int c, int k, int w){
            if(c * w <= k){
                return "yes";
            } else {
                return "no";
            }
        }
}
TS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:394
0

O, panie, to jest dopiero zadanie na rozgrzewkę.

DM
Wiem tylko nie chce mi czytać zadania w JS i musiałem wszystko na Jave robic :v
Maurycy Biegański
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:2
0

Jak ktoś rozpracuje jak w PHP to ugryźć to będzie świetnie. Dodam, że readline() do odczytania i echo/ print do wypisania nie dają rady i przyznane jest 0 punktów. W konsoli śmiga aż miło, a na stronie konkursu lipa.

edytowany 1x, ostatnio: Maurycy Biegański
fejmek
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
1

@Maurycy Biegański:
Udało mi się zrobić to w php :D

Kopiuj
<?php

header('Content-Type: text/plain');

$t = (int) fgets(STDIN);
$l = $t;
while($t--) {
    list($c, $k, $w) = explode(' ', fgets(STDIN));
    $in[] = $c.' '.$k.' '.$w;
}

for ($i=0;$i<$l;$i++){
  $ckw[$i] = explode(" ", $in[$i]);
    if ($ckw[$i][0]*$ckw[$i][2] <= $ckw[$i][1])
      print_r("yes\r\n");
    else
      print_r("no\r\n");
}

może trochę w taki meh sposób ale zadanie dobrze zrobione :D

Maurycy Biegański
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:2
0

Super, wielkie dzięki! Zależało mi głównie, żeby rozwiązać problem z niezczytywaniem wartości od nich i dzięki Twojemu rozwiązaniu się udało :D

Mariusz Zawierucha
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:3
0

Ja nadal nie rozumiem jak sczytać dane wejściowe w js :/
Czy to znajduje się w jakieś zmiennej, tablicy, czy może trzeba te dane pobrać z <body>???
Jak je później wypisać? Z pomocą konsoli?
Ktoś ma jakieś sugestie?

RK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
0

Dla JavaScript trzeba użyć SpiderMonkey.
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell

Udało mi się to odpalić przez jsshell:

Moje rozwiązanie, które przeszło:

Kopiuj
/* global readline */

var numberOfTests = readline()

for (var i = 1; i <= numberOfTests; i++) {
  var ckw = readline()
  var [c, k, w] = ckw.split(' ')
  var answer = test(c, k, w) ? 'yes' : 'no'

  console.log(answer)
}

function test (c, k ,w) {
  return c * w <= k
}

Ważne jest to, że readline pyta o pojedynczą linię, a wiec trzeba dane z przykładu wpisywać ręcznie - nie ładować np. z pliku całości danych.

Poniżej widok z terminala

dEZ7J1.png

edytowany 2x, ostatnio: Romuald Kowalczyk
MarekR22
Ale wiesz, że da się skopiować tekst z terminala?
RK
Tak :-D Ale głównie siedzę w projektowaniu i testach więc jak chcę coś komuś pokazać to odruchowo przerzucam przez program graficzny ;-)
LU
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
0

Mnie bardziej zastanawia, dlaczego:
a) kod napisany w PHP otrzymuje 66,67 pkt w Q2
b) kod napisany w C++ otrzymuje 33,33 pkt w Q2

Porównałem wyniki dla przypadków testowych, range 1000 - 9999, rezultat ten sam.

Przez chwilę, zastanawiałem się, że może temat z czasem wykonania, ale nie ważne jak bardzo uproszczę logikę, to mam takie same wyniki

Marcin.Miga
Bo wiedzą, że ten kod w PHP musiało dwóch programistów napisać :)
Mariusz Zawierucha
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:3
0
Romuald Kowalczyk napisał(a):

Dla JavaScript trzeba użyć SpiderMonkey.
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell

Udało mi się to odpalić przez jsshell:

Moje rozwiązanie, które przeszło:

Kopiuj
/* global readline */

var numberOfTests = readline()

for (var i = 1; i <= numberOfTests; i++) {
  var ckw = readline()
  var [c, k, w] = ckw.split(' ')
  var answer = test(c, k, w) ? 'yes' : 'no'

  console.log(answer)
}

function test (c, k ,w) {
  return c * w <= k
}

Ważne jest to, że readline pyta o pojedynczą linię, a wiec trzeba dane z przykładu wpisywać ręcznie - nie ładować np. z pliku całości danych.

Poniżej widok z terminala

dEZ7J1.png

Widzę, że jeszcze dużo nauki przede mną.
Dziękuję za pomoc :)
Pozdrawiam

F1
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
0

Macie pomysł jak input może wyglądać ze strony Pythona?
Nie ma czegoś takiego jak readline() jak w JSie.

KHX
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:według VPN
  • Postów:194
0

W js jest prompt.
A w Pythonie tylko nazwa zmiennej i input()


Sic Parvis Magna
Wiesz co się liczy? Szacunek ludzi piwnicy.
edytowany 1x, ostatnio: KHX
BO
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
0

Cześć,
Moje rozwiązanie dla C++ (100 punktów, czas wykonania 0):

include <iostream>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main()
{
int v_testes=0;
int v_c=0, v_k=0, v_w=0;//powierzchnia,udzwig,waga paczki
scanf("%d",&v_testes);
for (int i = 1; i <= v_testes; i++) {
scanf("%d %d %d", &v_c,&v_k,&v_w);
if (v_w* v_c <= v_k)
printf("yes\n");
else
printf("no\n");
}
// return 0;
}

AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 6 godzin
  • Postów:973
1

screenshot-20200813172519.png

Jak traktować poważnie konkurs gdzie nawet przykładowe wejścia / wyjścia są źle podane? I żadna poprawna odpowiedź nie przechodzi (fajnie jakby zwróciło informacje co jest błędne, jakieś test casy). Chciałem wziąć w tym udział no ale się nie da.


Zdalna praca dla Senior Python Developerów --> PW
Zobacz pozostały 1 komentarz
AN
Z 1112 powinno być -1 a nie 5
nalik
Dopisz 0 jak wychodzi Ci liczba trzycyfrowa. Wszystko jest ok
AN
Dzięki. Tylko, że nie ma o tym w zadaniu. Nie ma przypadków testowych, nie ma informacji zwrotnej jaki wynik jest zły, zasady mierzenia wyników też są nie jasne (zdarza się, że szybsze rozwiązanie ma mniej punktów mimo podobnego poboru pamięci)
nalik
1112 => 2111 - 1112 = 999 => 9990 - 999 = 8991 => 9981 - 1899 = 8082 => 8820 - 288 = 8532 => 8532 - 2358 =6174
nalik
A to już nie do mnie pretensje. Ja przebrnąłem p[rzez wszystkie zadania i rzeczywiście mogłyby być lepiej opisane. Ale kurat w przykładzie tego zadania jest liczba z 0 na początku, wystarczy się przyjrzeć :)
Marcin Czekajski
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:7
0

A ja mam problem z ostatnim zadaniem, chyba nie umiem odczytać danych wejściowych... Tam jest standardowe wejście/wyjście? (dla Pythona input() oraz print() ? )

nalik
Nie wiem, mi python też tam nie śmigał. Coś nie tak z danymi chyba. Przepisałem na c++. Zadanie skopiowali ze spoj, https://www.spoj.com/problems/JAWB/ , więc możesz sprawdzić na spoju
Marcin Czekajski
O dzięki, sprawdzę na SPOJu. To faktycznie chyba tez przepiszę to w C++
  • Rejestracja:około 6 lat
  • Ostatnio:ponad rok
0
Kopiuj
for a in[*open(0)][1:]:c,k,w=map(int,a.split());print('yneos'[c*w>k::2])
Marcin Czekajski
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:7
0

Jednak błąd jest gdzieś po mojej stronie, próbowałem na SPOJu, próbowałem w Javie i Pythonie. Jeżeli tylko próbuję czytać dane wejściowe to skutkuje to run-time error i poborem dużej ilości pamięci. Teraz testowałem taki kod w javie i też wywala błąd...

Kopiuj
import java.util.Scanner;

public class Main {

    public static void getData(Scanner input) {
        String[] mapSize = input.nextLine().split(" ");
        int h = Integer.parseInt(mapSize[0]);
        int w = Integer.parseInt(mapSize[1]);
        int c = Integer.parseInt(mapSize[2]);
        for (int j = 0; j < h; j++) {
            String row = input.nextLine();
        }
    }

    public static void answer() {
        System.out.println("Y");
        System.out.println("-1, -1");
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int tests = Integer.parseInt(input.nextLine());

        for (int i = 0; i < tests; i++) {
            getData(input);
            answer();
        }
        
        input.close();
    }
}
OL
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:13
0

Dałeś niepotrzebnie przecinek między minus jedynkami

Zobacz pozostałe 2 komentarze
Marcin Czekajski
Dokładnie tak. W Pythonie to samo, nie mogę zlokalizować problemu.
OL
Spróbuj w tej Javie użyć nextInt ze Scannera zamiast wczytywać całą linię i dzielić. W ten sposób kod będzie odporny na przypadki gdzie dadzą te liczby w kolejnych liniach a nie w tej samej. Choć w zasadzie nie powinno być takiego przypadku. Ale nie widzę, czemu to miałoby nie chodzić.
nalik
Coś w tym może być. W pythonie wczytywałem po linijkach i nie działało. W cpp po prostu zrobiłem cin >> n_rows >> n_cols >> n_colours;, czylli z grubsza odpowiednik nextInt i śmiga. Może jakieś inne białe znaki się wkradły.
OL
Jeśli chcesz cokolwiek w tym konkursie zdobyć, to i tak nie ma sensu użycie innego języka niż C++, za wolne są, a w 7 zadaniu są przeraźliwie krótkie limity czasowe.
Marcin Czekajski
Przepisałem używając nextInt i działa. Dziękuję za pomoc. Spróbuję przypomnieć sobie C++ :)
LA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0

Hej, a jak wygląda sprawa z wpisaniem kilku linii / wczytaniem pliku? Chodzi mi konkretnie o zadanie 4, gdzie trzeba wczytać listę IP. Tutaj readline() chyba nie da rady, a szczerze mówiąc nie do końca rozumiem. Działam w JS i chciałem nauczyć się nowych rzeczy.

Czy te dane wejściowe mają być jakoś w osobnym pliku umieszczone i ładowane?

OL
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:13
0
lalto napisał(a):

Hej, a jak wygląda sprawa z wpisaniem kilku linii / wczytaniem pliku? Chodzi mi konkretnie o zadanie 4, gdzie trzeba wczytać listę IP. Tutaj readline() chyba nie da rady, a szczerze mówiąc nie do końca rozumiem. Działam w JS i chciałem nauczyć się nowych rzeczy.

Czy te dane wejściowe mają być jakoś w osobnym pliku umieszczone i ładowane?

We wszystkich zadaniach dane są czytane ta samo, ze standardowego wejścia. Nie wiem, jak to wygląda w JS, ale jeśli zrobiłeś zadania 1-3, i jakoś tam wczytywałeś dane, to tutaj zrób podobnie.

edytowany 1x, ostatnio: olafmat
LA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0
olafmat napisał(a):
lalto napisał(a):

Hej, a jak wygląda sprawa z wpisaniem kilku linii / wczytaniem pliku? Chodzi mi konkretnie o zadanie 4, gdzie trzeba wczytać listę IP. Tutaj readline() chyba nie da rady, a szczerze mówiąc nie do końca rozumiem. Działam w JS i chciałem nauczyć się nowych rzeczy.

Czy te dane wejściowe mają być jakoś w osobnym pliku umieszczone i ładowane?

We wszystkich zadaniach dane są czytane ta samo, ze standardowego wejścia. Nie wiem, jak to wygląda w JS, ale jeśli zrobiłeś zadania 1-3, i jakoś tam wczytywałeś dane, to tutaj zrób podobnie.

No tak, z tym że readline() pobiera jedną linię (a dodatkowo w zadaniu jest napisane, że dane kończą się wraz z końcem pliku - co też nie jest dla mnie jasne), więc zastanawiam się, czy po prostu kombinować z tą metodą, czy może spróbować ugryźć to inaczej. W każdym razie dziękuję za odpowiedź, postaram się coś wykombinować.

QU
Robię w c++ i o ile zadania 1-3 poszły bez problemu, to w 4 z nic nie mam pomysłu, jak odczytywać te dane. Próbowałem fgets, getline i nic. Przy części zadań wrong answer przy innych timeout. W konsoli zarówno kopiowanie przykładu jak i wstrzykiwanie pliku (w cmd: plik_exe < plik_testowy) z przykładem daje dobry wynik.
LA
Mam to samo. U mnie działa, a w sprawdzarce wywala błędy. Sensownym rozwiązaniem wydaje się faktycznie załadowanie pliku, ale nie wiem, na jakiej zasadzie robi to sprawdzarka. Wcześniejsze przykłady były w tej kwestii prostsze, bo wprowadzanie danych wejściowych ograniczało się do czytania pojedynczych linii.
Jędrzej Myrcha
Ja mam to samo. Wszystko ładnie śmiga jak wpisuje sam dane wejściowe, ale nie rozumiem jak odczytać "koniec pliku" skoro wejściem nie jest plik tylko pojedyncze wiersze tego "pliku". Dodam, że je piszę w Pythonie.
AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 6 godzin
  • Postów:973
0

Zgadzam się Lalto. Też miałem z tym problem, w zadaniu piszą X, robią Y. Porzuciłem ten konkurs więc nie pomogę z tym. Tylu nieścisłości dawno nie widziałem nawet w żadnym zadaniu w pracy :D


Zdalna praca dla Senior Python Developerów --> PW
LA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0
anonimowy napisał(a):

Zgadzam się Lalto. Też miałem z tym problem, w zadaniu piszą X, robią Y. Porzuciłem ten konkurs więc nie pomogę z tym. Tylu nieścisłości dawno nie widziałem nawet w żadnym zadaniu w pracy :D

Co lepsze, poszedłem w kierunku ładowania danych z plików ("dane wejściowe kończą się wraz z końcem pliku) i za pomocą metody read() jestem w stanie wczytać dane. Ale w sumie nie wiem, jaką ścieżkę do pliku wybrać...

Działam w JS, ale raczej React niż SpiderMonkey (który jest w konkursie) i stąd czuję się nieco zagubiony.

QU
Czyli powinniśmy zakładać, że na wejściu program dostaje jako argument scieżkę do pliku z danymi?
LA
Tak mi się wydaje. Bo w przypadku JS w grę wchodzą metody readline() (do czytania pojedynczych linii - do kilku zmiennych, ale podanych w jednej linii) i read() (do czytania plików - tutaj dane mogą być w wielu liniach). Co prawda można wymusić jakąś pętlą (np. while) użycie readline() dla każdej linii z podanych danych, ale tak naprawdę później jest problem z przerwaniem tej pętli (bo zakładamy, że powinna być cały czas gotowa na "przyjęcie" kolejnej linii z danymi) i dlatego załadowanie danych z pliku byłoby łatwiejsze, no ale ta ścieżka...
OL
W 4 zadaniu oni dodali chyba jakąś pustą linię w danych. Natomiast nadal dane czyta się ze standadowego wejścia. Ja wczytuję w C++ i koniec tego "pliku" wykrywam tak:<br /> while (std::cin.peek() != std::char_traits<char>::eof()) { I działa
Marcin Czekajski
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:7
0

Tak w 4 zadaniu trzeba inaczej podejść do odczytu danych, ja to zrobiłem tak w Pythonie:

Kopiuj
import fileinput

for line in fileinput.input():

A tak z ciekawości ile punktów udało Wam się zdobyć za poszczególne zadania? Wydaje mi się, że 1-3 jest punktowane max 100, 4-6 tu już miałem wyższe wyniki ale max okolice 200, ostatnie musi być mocno punktowane patrząc na ranking.

edytowany 1x, ostatnio: Marcin Czekajski
LA
Za pierwsze 3 jest maksymalnie 100 pkt do zdobycia, za 4 bodajże 400.
OL
Punkty? 1) 100 2) 100 3) 100 4) 300 5) 339.66 6) 895.5 7) 3398.58
Marcin Czekajski
No to ładnie wykręciłeś :) Gratulacje
OL
Dzięki :) Ale mi depczą po piętach, spadałem z pierwszego miejsca już trzy razy, więc to wciąż za mało. Według FAQ konkursu w zadaniu 5 autorzy osiągnęli 441.564 punktów, tutaj mam jeszcze sporo do zrobienia.
Marcin Czekajski
  • Rejestracja:ponad 4 lata
  • Ostatnio:3 miesiące
  • Postów:7
0

Narobiłem się w tym C++, na razie zrobiłem podstawowy wariant, czyli program działa na zasadzie losowego wybierania grupy, przeliczania mapy, znowu losowo wybiera i tak aż braknie grup. Potestowałem go trochę we własnym zakresie i wygląda na to, że działa poprawnie. Niestety w konkursie wyrzuca mi błędne rozwiązanie :( Już brakuje mi pomysłów, co może być nie tak. Nie chcę tu wklejać całego kodu, ale może macie jakiś pomysł na co zwrócić uwagę? Jeżeli wyrzucam odpowiedzi typu Y -1 -1 albo N to przyjmuje rozwiązanie i daje 0 punktów.

NA
Sprawdź czy przypadkiem nie mieszasz wierszy z kolumnami przy wypisywaniu współrzędnych.
nalik
Jeżeli mogę coś Ci doradzić, to zrób testy, które generują losowe plansze, a potem walidują wyniki (odtwarzają ruchy od początku i sprawdzają, czy nie usuwasz już usunietych bloczków, czy usuwane grupy na pewno liczą ponad 2 pola i czy na pewno się łączą).
Marcin Czekajski
Sprawdziłem i wierszy z kolumnami nie mieszam, ale dziękuję za podpowiedź. Co do takich testów, myślę, że to dobry pomysł. Jeszcze nie wiem jak się takie coś pisze ale spróbuję się tego nauczyć :)
nalik
Losujesz rozmiar planszy i liczbę kolorów. Potem losujesz kolor dla każdego pola na planszy. Przepuszczasz przez algorytm rozwiązywania (na tym etapie można juz dodać dodatkowe weryfikacje). Potem przepuszczasz przez weryfikację. I tak z 500 razy. Może błąd jest gdzieś w kompaktowaniu planszy (spadanie kolorów). Warto wypisać planszę w czytelny sposób. PS. losowe wybieranie dawało mi około 1000-1200pkt, nie więcej
Marcin Czekajski
To losowe wybieranie to tylko pierwszy krok, żeby mi właśnie cokolwiek naliczyło i żebym wiedział, że jest sens rozwijać program. Plansze sobie wypisuję poglądowo i kurcze no działa elegancko - szkoda, że tylko u mnie :P
D5
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:16
0

To zadanie 4 to jakaś masakra.
Jak można spieprzyć opisanie wczytywania danych?

"Wejście składa się z wierszy...
Dane wejściowe kończą się z końcem pliku?"

Mam to wczytywać za pomocą while i wczytywać dopóki ktoś nie wprowadzi na wejście znaku EOF?
Czy mam zapisać te instrukcje do jakiegoś pliku i je z niego odczytywać?

Próbowałem 4 różnych opcji w Pythonie, za każdym razem wywalało przy wysyłaniu rozwiązania runtime error.

edytowany 1x, ostatnio: Darek554
Zobacz pozostałe 4 komentarze
D5
POPRAWKA Zara nie wyczymie. Znowu runtime error dostaję, sram na to zadanie. Więcej pieprzenia z wczytywaniem danych niż z samym rozwiązaniem problemu.
Marcin Czekajski
To może problem leży gdzie indziej niż po stronie wczytywania danych?
Marcin Czekajski
Ja u Ciebie błędu nie widzę, ale programista ze mnie póki co tylko hobbystyczny :)
D5
Wszystkie testy przeprowadzane po mojej stronie dają wyniki takie jak powinny ;d
nalik
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 2 lata
  • Postów:1039
0
Marcin Czekajski napisał(a):

A tak z ciekawości ile punktów udało Wam się zdobyć za poszczególne zadania? Wydaje mi się, że 1-3 jest punktowane max 100, 4-6 tu już miałem wyższe wyniki ale max okolice 200, ostatnie musi być mocno punktowane patrząc na ranking.

W FAQ jest podana punktacja.
Mi wyszło tak:

  1. 100, 2) 100, 3) 100, 4) 300, 5) 418.14, 6) 659.7 7) 2380.68
Marcin Czekajski napisał(a):

Tak w 4 zadaniu trzeba inaczej podejść do odczytu danych, ja to zrobiłem tak w Pythonie:

Kopiuj
import fileinput

for line in fileinput.input():

Co do 4, wczytywanie u mnie wyglądało tak:

Kopiuj
for line in sys.stdin:
    line = line.strip()
    op, ip1, ip2 = line.split()
    if op == 'B':
        network.connect(ip1, ip2)
    if op == "T":
        print("T" if network.is_connected(ip1, ip2) else "N")

Potem straciłem zainteresowanie poprawianiem rozwiązań.

edytowany 2x, ostatnio: nalik
Zobacz pozostałe 2 komentarze
D5
W sumie to teraz przyszło mi do głowy, że może przekroczyłem limit pamięci - napisałem tę funkcję rekurencyjnie - tylko z drugiej strony gdyby tak było, to dostałbym chyba jakiś "Memory error" a nie "Runtime error".
nalik
A nie używasz przypadkiem jakiegoś rekurencyjnego algo? Być może leci Ci: Exception RuntimeError: 'maximum recursion depth exceeded'
D5
Właśnie nad tym się zastanawiałem ;D Rekurencyjnie przeszukuję hashmapę w poszukiwaniu połączenia.
VO
Dzięki za podpowiedź odnośnie tego jak te dane pobrać. Ale za całość dostałem 84 pkt. Zrobiłem graf jako słownik list, a przeszukiwanie DFS (i sprawdziłem też BFS). DFS zrobiłem nie rekurencyjnie. Jest jakaś optymalizacja tego grafu lub przeszukiwania?
nalik
Normalnie temat dnia :) find union
IN
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:47
2

Cześć, czy macie jakiś pomysł jak w zadaniu 4 wprowadzić poprawnie dane w Javie? Na różne sposoby już próbowałem i brakuje pomysłu. Beznadziejny opis w zadaniu jeśli chodzi o to jak powinno coś takiego wyglądać :(

OL
Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) żeby znaleźć ten koniec pliku i powinno dać radę. Tylko nie używaj nextLine bo w niektórych zadaniach chyba zaszyli jakieś niespodzianki w stylu pustej linii.
IN
Jeśli nie nextLine to zapewne next z jakimś patternem, niestety wtedy zawsze dostaję RuntimeException :(
LA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0
Infinito napisał(a):

Cześć, czy macie jakiś pomysł jak w zadaniu 4 wprowadzić poprawnie dane w Javie? Na różne sposoby już próbowałem i brakuje pomysłu. Beznadziejny opis w zadaniu jeśli chodzi o to jak powinno coś takiego wyglądać :(

Mam ten sam problem odnośnie zadania 4. tyle że w JS (SMonkey) i tak jak we wcześniejszych zadaniach readline() zdawało egzamin, to teraz nie bardzo wiem, o co chodzi. Czy ktoś dał radę zrobić to w JS?

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)