Problem ze SPOJem

0

Otóż robię zadania na pewien konkurs robiony na SPOJu. Mam tam zadanie gdzie dane wejściowe są z góry nieznane .Po przejrzeniu tematu w internecie zorientowałem się że chodzi o taką konstrukcję :

while(!cin.eof())
           {
          //pobieranie danych i algorytm 
}

Lecz kod ten pobiera poprawnie 1 wiersz danych. Kolejne wiersze nie są brane pod uwagę i zamiast nich pobiera jakby cały czas pierwszy. Jak rozwiązać ten problem?

0

Po pierwsze. wystarczy while(cin).
Po drugie, jeżeli w kolejnym wierszu ma być co najmniej dwie liczby to lepiej while(cin>>a>>b)
Po czwarte, ten efekt o którym mówisz jest możliwy przy próbie wczytania litery jako liczby.

0

Nie działa. Próbuje kompilować ten prosty przykład na Ideone.com :

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    int x,y;
    int suma=0;
    while(cin>>x>>y)
           {
           cin>>x>>y;
           suma+=x+y;
           }
cout<<suma;
} 

Wejście :

45 56
34 34
22 11

Wyjście :

 101

Wyjście powinno być 202, nie wiem czemu tylko wykonuje się jakby raz.

0
 while(cin>>x>>y)
           {
           cin>>x>>y;

Po co pobierasz dwa razy wartości ? . W while już ci pobrało wartości to drugi raz tego nie robisz.

0
#include <iostream>
using namespace std;
int main()
  {
   int x,y,suma=0;
   while(cin>>x>>y) suma+=x+y;
   cout<<suma;
   return 0;
  }
0

Niestety z niewiadomych dla mnie błędów pętla wykonuje się za krótko, nie wiem czemu tak jest.

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
 {
 ios_base::sync_with_stdio(0);
 int x,y,z;
 int byl=0;
 while(cin>>x>>y>>z)
 {
 byl++;
 }
 cout<<byl;
 }
 

Dla 10 000 linijek program wczytuje dokładnie tylko 8 548.
http://ideone.com/K2P0hn
Dlaczego się tak dzieje?

0
kolarz3 napisał(a):

Dla 10 000 linijek program wczytuje dokładnie tylko 8 548.
Dlaczego się tak dzieje?
Bo dokładnie tyle 8548 wierszy masz zapisanych d danych wejściowych.

0

A nie wiesz może przypadkiem jak wysłać więcej wierszy, bo automatycznie jak więcej wysyłam to skraca wejście?

0

Blokada jakas na ideone.
user image

0

Już rozwiązałem swój problem, okazało się że nie dostawałem pkt. ponieważ nadpisywałem pamięć, która nie była zarezerwowana.

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