您的位置:首页 > 其它

UVa 10935 (水题) Throwing cards away I

2015-04-24 13:45 417 查看
直接用STL里的queue模拟即可。

#include <cstdio>
#include <queue>
using namespace std;

const int maxn = 60;
int discarded[maxn], cnt;

int main()
{
int n;
while(scanf("%d", &n) == 1 && n)
{
cnt = 0;
queue<int> Q;
for(int i = 1; i <= n; i++) Q.push(i);
while(Q.size() >= 2)
{
discarded[cnt++] = Q.front(); Q.pop();
int t = Q.front(); Q.pop(); Q.push(t);
}
printf("Discarded cards:");
for(int i = 0; i < cnt; i++)
{
if(i) printf(",");
printf(" %d", discarded[i]);
}
printf("\n");
printf("Remaining card: %d\n", Q.front());
}

return 0;
}


代码君
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: