TLE求助
查看原帖
TLE求助
523541
Onana_in_XMFLS楼主2021/10/12 17:52

wssb现在连简单栈模拟都不会了吗

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef long double LD;
const int INF = 2147483647;
const int S = 1e4+5;
stack <int> s[S];
int tmp[5*S];
inline LL read()
{
    LL x=0,f=1;
    char ch = getchar();
    while(!isdigit(ch)) {if(ch == '-') f = -1;ch = getchar();}
    while(isdigit(ch)) {x=x*10+ch-48;ch=getchar();}
    return f*x;
}
int main(int argc,char *argv[])
{ 
    //freopen("data.in","r",stdin);
    //freopen("data.out","w",stdout);   
    int T = read();
    for(int ii = 1;ii <= T;++ii)
    {
        printf("Case %d:\n",ii);
        int n = read(),q = read();
        for(int i = 1;i <= n;++i)
            while(!s[i].empty()) s[i].pop();
        while(q--)
        {
            char op[5];
            scanf("%s",op);
            int k = read();
            if(op[0] == 'p' && op[1] == 'u' && op[2] == 's'){int x = read();s[k].push(x);}
            else if(op[0] == 'p' && op[1] == 'o' && op[2] == 'p' && !s[k].empty()) s[k].pop();
            else if(op[0] == 'p' && op[1] == 'u' && op[2] == 't')
            {
                int k2 = read(),d = 0;
                memset(tmp,0,sizeof(tmp));
                while(!s[k2].empty()) 
                {
                    tmp[++d] = s[k2].top();
                    s[k2].pop();
                }
                for(int i = d;i;--i) s[k].push(tmp[i]);
            }
            else s[k].empty()?puts("Empty!"):printf("%d\n",s[k].top());
        }
    }
    //printf("Tide used = %.0lf.ds\n",((double)clock()/(double)CLOCKS_PER_SEC) * 1000.0);
    return 0;
}  
2021/10/12 17:52
加载中...