Ural 1915 - Reconstruction of Bygones 模拟

来源:互联网 发布:手机淘宝强制拍摄脸部 编辑:程序博客网 时间:2024/05/16 01:06

   题意是说当输入为正数时~压入栈..当输入为0时将所有元素复制一遍进去..当输入为-1时.输出栈顶并弹出...

   练习赛的时候看范围就不敢做了...其实..注意当栈内的元素比较多了..就不需要复制了...卡住条件..直接模拟就行...


Program:

#include<iostream>#include<stdio.h>#include<string.h>#include<cmath>#include<algorithm>#include<queue>#include<stack>#define ll long long #define oo 1000000007#define MAXN 1000005using namespace std;   int n,mystack[MAXN<<1];int main(){       int t,i,top;        while (~scanf("%d",&n))       {               top=0;               for (t=n;t>=1;t--)               {                       int x;                       scanf("%d",&x);                       if (x>0) mystack[++top]=x;                       if (x==-1) printf("%d\n",mystack[top--]);                       if (!x)                       {                              if (top>t) continue; //没必要复制了                              for (i=1;i<=top;i++) mystack[top+i]=mystack[i];                              top*=2;                       }               }       }       return 0;}


原创粉丝点击