
Hello, there was a problem, the site for checking the solution gives an excess of the time limit. How and what can you optimize?
#include <iostream> #include <stack> #include <vector> using namespace std; int main() { long long i, n; cin >> n; stack <long long> A; stack <long long> B; vector <long long> C; for (i = 0 ; i < n ; i ++) { char x; long long X, k; cin >> x; switch ( x ) { case '+': { cin >> X; A.push (X); break; } case '-': { C.push_back (A.top ()); A.pop (); break; } case '?': { cin >> X; long long s=0; for (k=0 ; k<X ; k++) { s += A.top (); B.push (A.top ()); A.pop (); } C.push_back (s); for (k=0 ; k < X ; k++) { A.push (B.top ()); B.pop (); } break; } } } while (C.size() != 0) { cout << C[0] << endl; C.erase (C.begin ()); } }