EOJ_1021_可旋栈
生活随笔
收集整理的這篇文章主要介紹了
EOJ_1021_可旋栈
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <iostream>using namespace std;
//注意head>tail 和 head<tail時入棧出棧的下標(biāo)+-不同
long long st[600002]={0};
int head=300000,tail=300000;int main()
{int q;cin>>q;for(int i=0;i<q;i++){int cmd;cin>>cmd;if(cmd==1){long long X;cin>>X;if(head>=tail){st[head++]=X;}else{st[head--] = X;}cout<<X<<endl;}else if(cmd==2){if(head>=tail){head--;if(head==tail) cout<<-1<<endl;else cout<<st[head-1]<<endl;}else{head++;if(head==tail) cout<<-1<<endl;else cout<<st[1+head]<<endl;}}else{if(head==tail) cout<<-1<<endl; else if(head>tail){int tmp = head-1;head = tail-1;tail = tmp;cout<<st[1+head]<<endl;}else{int tmp = head+1;head = tail+1;tail = tmp;cout<<st[head-1]<<endl;}}}return 0;
}
總結(jié)
以上是生活随笔為你收集整理的EOJ_1021_可旋栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EOJ_1020_铁路调度
- 下一篇: EOJ_1015_查字典