1 / 7
Aug 2020

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/13

  • created

    Aug '20
  • last reply

    Jul '22
  • 6

    replies

  • 646

    views

  • 5

    users

  • 5

    likes

  • 1

    link

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.

1 year later

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)
   {
      .........