#include #include #include using namespace std; int main() { string polecenia[100005]; int il_liczba; int licznik_polecen; long int stos[1005],wart[100005]; bool wypisano; int N,i,j,k; while (1) { licznik_polecen = 1; cin >> polecenia[0]; if (polecenia[0][0] == 'Q') { break; } if (polecenia[0].compare(0,3,"NUM") == 0) { cin >> wart[0]; } while (1) { cin >> polecenia[licznik_polecen]; if (polecenia[licznik_polecen][0] == 'E') { break; } if (polecenia[licznik_polecen].compare(0,3,"NUM") == 0) { cin >> wart[licznik_polecen]; } ++licznik_polecen; } cin >> N; for (i = 0; i> stos[0]; il_liczba = 1; for (j = 0; j < licznik_polecen; ++j) { if (polecenia[j].compare(0,3,"NUM") == 0 ) { stos[il_liczba] = wart[j]; ++il_liczba; } else if (polecenia[j].compare(0,3,"POP") == 0 ) { if(il_liczba == 0) { cout << "ERROR\n"; wypisano = true; break; } --il_liczba; } else if (polecenia[j].compare(0,3,"INV") == 0 ) { if(il_liczba == 0) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-1] = -stos[il_liczba-1]; } else if (polecenia[j].compare(0,3,"DUP") == 0 ) { if(il_liczba == 0) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba] = stos[il_liczba-1]; ++il_liczba; } else if (polecenia[j].compare(0,3,"SWP") == 0 ) { if(il_liczba < 2) { cout << "ERROR\n"; wypisano = true; break; } long int temp = stos[il_liczba-1]; stos[il_liczba-1] = stos[il_liczba-2]; stos[il_liczba-2] = temp; } else if (polecenia[j].compare(0,3,"ADD") == 0 ) { if(il_liczba < 2) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-2] += stos[il_liczba-1]; --il_liczba; } else if (polecenia[j].compare(0,3,"SUB") == 0 ) { if(il_liczba < 2) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-2] -= stos[il_liczba-1]; --il_liczba; } else if (polecenia[j].compare(0,3,"MUL") == 0 ) { if(il_liczba < 2) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-2] *= stos[il_liczba-1]; --il_liczba; } else if (polecenia[j].compare(0,3,"DIV") == 0 ) { if(il_liczba < 2 || stos[il_liczba-1] == 0) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-2] /= stos[il_liczba-1]; --il_liczba; } else if (polecenia[j].compare(0,3,"DIV") == 0 ) { if(il_liczba < 2 || stos[il_liczba-1] == 0) { cout << "ERROR\n"; wypisano = true; break; } stos[il_liczba-2] = stos[il_liczba-2] % stos[il_liczba-1]; --il_liczba; } if(stos[il_liczba-1] > 1000000000 || stos[il_liczba-1] < -1000000000) { cout << "ERROR\n"; wypisano = true; break; } } if(wypisano == false) { if(il_liczba != 1) { cout << "ERROR\n"; } else { cout << stos[0] << "\n"; } } } cout <<"\n"; } return 0; }