Konkurs decode it

0

Witam,

Czy spotkał się ktoś może z informacją na temat danych wejściowych wyglądający w następujący sposób:

Wejście składa się z wierszy, z których każdy zawiera informację o budowie nowego połączenia lub zapytanie o istnienie połączenia.

Dane wejściowe kończą się wraz z końcem pliku.

Konkurs prowadzony jest na sprawdzarce i już powoli kończą mi się pomysły jak te dane mogą być wczytywane
Poniżej kilka sposobów których już próbowałem

while(cin >> operation >> tmp1 >> tmp2)
while(getline(cin, str))
while(!getline(cin,str).eof())
while(!(cin >> operation >> tmp1 >> tmp2).eof())

0

Podaj typy zmiennych i komunikat błędu.
Próbowałeś na próbnym pliku u siebie?

0

Sprawdzarka nie daje żadnego wyjścia poza ilością pkt, wejście wczytuje jako string

char operation;
string tmp1, tmp2;

stringstream ss;
while (getline(cin, tmp2))
{
    stringstream ss(tmp2);

    ss >> operation >> tmp1 >> tmp2;
    ...............

testowo puszczam jako tekst do konsoli, tylko nie rozumiem jak mam to puścić na sprawdzarkę, poniżej puszczam cały komunikat odnośnie danych testowych:

Wejście składa się z wierszy, z których każdy zawiera informację o budowie nowego połączenia lub zapytanie o istnienie połączenia.

Informacja o budowie nowego łącza ma postać:
B IP1 IP2

gdzie IP1 i IP2 to adresy IP (w formacie czterech liczb z zakresu 1..255 oddzielonych kropkami), pomiędzy którymi powstaje łącze. Na początku działania programu sieć nie zawiera żadnych łączy.

Zapytanie o istnienie połączenia światłowodowego ma natomiast postać:
T IP1 IP2
Dane wejściowe kończą się wraz z końcem pliku.

0

Innymi słowy nie ma nic o pliku tylko to że dane kończą się wraz razem z nim

0

Ten konkurs jest śmieszny tak samo jak pytania w nim zawarte. Niedoprecyzowane. Na wykopie co chwilę jest jakis wpis o tym konkursie i głupich pytaniach.

Już nie wspominam o ich zabezpieczeniach - To niezły pracuj.pl Wordpres...

0

Sprawdz najpierw czy dobrze parsujesz wszystkie komendy (takze te w ostatniej linii).
Np. przez dodatkowy cout.
Potem zaimplementuj chodzenie po grafie wezlow (jesli bylo B m. X i Y, oraz Y i Z to T ma odpowiedziec poprawnie dla zapytania X i Z).
Potem postaraj sie zeby bylo wydajnie.
Potem uwzglednij czy komendy B i T moga sie przeplatac.

0

Nie dokonuje żadnego parsowania (wszystko zostaje jako string), a samo chodzenie w mojej opini jest bardzo proste bo zaimplementowałem to z pomocą zwykłego i prostego dfs-a

0

Ja użyłem w 4 zadaniu

while (std::cin.peek() != std::char_traits<char>::eof()) {

I działa. Pozdrawiam.

0

Ja w tym 4 mam jakiś dziwny problem dostaje 28 punktów X3 czyli 84 i nie mogę dostać więcej. Porobiłem sobie dużo przypadków testowych i wszystkie są ok. Nie wiem czy jakieś problem z danymi wejściowymi albo puste linie :(. Trochę ciężko mi wrożyć.

0

A ja walczę z ostatnim zadaniem i nie wiem czemu wywala mi błąd, u mnie śmiga. Też przypuszczam, że z jakiegoś powodu mój program źle wczytuje ich dane wejściowe. Programuję w Pythonie. Macie jakieś rady?

1 użytkowników online, w tym zalogowanych: 0, gości: 1