Spróbuj używać mniej wywołań operatora >> strumienia wejścia. Wczytaj liczby "na raz" do jakiegoś kontenera.
std::vector<int> vector;
std::istream_iterator<int> begin(std::cin);
std::istream_iterator<int> end;
std::copy(begin, end, std::back_inserter(vector));
std::cout << vector.size();
Oczywiście jest to jedynie moje przypuszczenie. Nie wiem, czy ci to pomoże, ale warto spróbować