Mam problem z tym zadaniem. Niby wszystko działa ok, ale nie wiem dlaczego spoj wyrzuca błędną odpowiedź. Pewnie jest jakiś przypadek, którego nie rozważyłem, dlatego prosiłbym o pomoc w poprawieniu kodu na poprawny.
Link do zadania https://pl.spoj.com/problems/AL_10_11/
Przyznam sie ze w ogule nie patrzylem na kod. Ale cos znalazlem, dla przypadku: wejscie: 23:59:59 00:00:07 100 wyjscie: 45.0 24.3
Edit: potem popatrzylem na kod i mysle ze i tak za duzo podpowiedzialem.
Dzięki wypatrzyłem ten błąd i go poprawiłem, mimo to spoj nadal odrzuca mój kod. Jakieś pomysły?
Niepotrzebnie używasz funkcji round do zaokrąglania, skoro i tak robi to już std::setprecision(). Poza tym niebezpiecznie jest najpierw zaokrąglać prędkość w km/h a dopiero potem zamieniać na węzły - mogą wtedy wystąpić nieprzewidziane błędy (np. 1.943->1.0502->1.1 a 1.9->1.027->1.0). W dodatku przelicznik z km/h na węzły to 0.53995680 a nie 0.54054 jak Ty przyjąłeś.
Dzięki wielkie za pomoc. Już wszystko działa jak należy, wystarczyło poprawić kilka głupich błędów.
Postaraj się skrócić kod, wtedy łatwiej wyłapać błędy. Mój program ma 20 linijek i przeszedł za pierwszym podejściem.
Jak można wczytywać dane, takie jak w tym zadaniu? W CPP można np tak:
int g1, m1, s1, g2, m2, s2; double dl; char c; while (cin >> g1 >> c >> m1 >> c >> s1 >> g2 >> c >> m2 >> c >> s2 >> dl) { .........