Skocz do zawartości
aurel

C++, Zapętlanie W Nieskończoność

Rekomendowane odpowiedzi

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ść...?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...