aurel Opublikowano 17 Września 2007 Zgłoś Opublikowano 17 Września 2007 krótki i prosty kod, jak zwykle: #include<iostream> #include<cstdio> using namespace std; main () { int hmax, ojciec, syn, wysokosc[1001], i; char c; while (!feof(stdin)){ for (i=0; i<=1000; i++) wysokosc[i]=1; hmax=0; while ((c = getchar ()) != '\n') { ungetc(c, stdin); while ((c = getchar ()) != ' ' && c!='\n') { switch (c) { case '(': scanf ("%d", &ojciec); break; case ',': scanf ("%d", &syn); break; } } if (ojciec!=syn && wysokosc[syn]<(wysokosc[ojciec]+1)) wysokosc[syn]=(wysokosc[ojciec]+1); if (wysokosc[syn]>hmax) hmax=wysokosc[syn]; if (c=='\n') break; } if (feof(stdin)) break; cout << hmax << "\n";} return 0; } wczytywanie jest dziwne, gdyż dane są podawane w formie: (0,1) (0,2) (5,1) itd. kolejne testy są oddzielane znakiem końca linii program ma przekroczony limit czasu na spoju, gdzie ten limit to 60s :/ zastanawiam sie czy to nie wina złego umiejscowienia if (feof(stdin)) break; i gdzie w takim razie powinnam je przenieść...? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 23 Września 2007 Zgłoś Opublikowano 23 Września 2007 podaj zadanie. Mam wrazenie, ze to z obsesji algorytmicznych, czy jak to OPSS sie nazywalo :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...