#include"iostream"
#include"algorithm"
#include"vector"
#include"map"
#include"string"
#include"deque"
#include"queue"
#include"stack"
#include"cstdio"
#include"cmath"
using namespace std;
int main()
{
//freopen("a.txt","r",stdin);
int n;
while(cin>>n&&n)
{
cout<<"Discarded cards:";
deque<int>a;
int i;
for(i=1;i<=n;i++)
a.push_back (i); //23456
while(a.size()!=1)
{
int t=a.front();
if(a.size()>2)
cout<<" "<<t<<",";
else
cout<<" "<<t;
a.pop_front();
int tt=a.front();
a.push_back(tt);
a.pop_front();
}
cout<<endl;
cout<<"Remaining card: ";
cout<<a.front()<<endl;
}
return 0;
}
UVA10935
最新推荐文章于 2021-08-22 21:11:31 发布
本文介绍了一个基于C++实现的卡片淘汰赛算法。通过使用deque(双端队列)来模拟淘汰过程,每次从队列头部取出一张卡片并输出,然后将下一张卡片移至队列尾部,直至剩余最后一张卡片。此算法适用于了解和学习STL容器及算法应用。
摘要由CSDN通过智能技术生成