/*
用栈直接模拟
非常方便!
*/
#define LOCAL
#include<iostream>
#include<stack>
using namespace std;
int main()
{
#ifdef LOCAL
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int n,r,p,q,i;
while(cin>>n>>r,n)
{
stack<int> a,b,c;
for(i=1;i<=n;i++)
a.push(i);
while(r--)
{
cin>>p>>q;
p--;
while(p--)
{
b.push(a.top());
a.pop();
}
while(q--)
{
c.push(a.top());
a.pop();
}
while(!b.empty())
{
a.push(b.top());
b.pop();
}
while(!c.empty())
{
a.push(c.top());
c.pop();
}
}
cout<<a.top()<<endl;
}
return 0;
}
zoj 2164 Hanafuda Shuffle
最新推荐文章于 2017-06-11 22:17:16 发布
本文介绍了一个使用栈来模拟数据移动的算法实现。该算法通过读取输入文件中的指令,完成不同栈之间的元素移动操作。主要关注于如何利用C++中的标准模板库(stack)来高效地实现这一过程。
741

被折叠的 条评论
为什么被折叠?



