Witam.
Próbując zrobić zadanie: pl.spoj.pl/problems/STOS/ napisałem taki program:
#include <iostream>
using namespace std;
int main()
{
int stack[10];
short pt = 0;
while(cin.peek() != EOF)
{
string next;
next = cin.peek();
if(next == "+")
{
cin.ignore(1);
if(pt > 9) cout << ":(\n";
else
{
cin >> stack[pt++];
cout << ":)\n";
}
}
else if(next == "-")
{
cin.ignore(1);
if(pt < 1) cout << ":(\n";
else
{
cout << stack[pt--] << endl;
}
}
}
}
Jednak sprawdzarka pokazuje przekroczenie limitu czasu, a sprawdzając go ręcznie zauważyłem, że po podaniu pierwszego znaku program zaczyna czekać na coś, przy czym nie można tego nijak anulować niż wyłączyć go. Gdzie jest błąd?