您的位置:首页 > 其它

【杭电】[1276]士兵队列训练问题

2016-03-18 23:24 429 查看




模拟报数的过程即可

#include<stdio.h>
bool change(bool a) {
return a?false:true;
}
int main() {
int T;
scanf("%d",&T);
while(T--) {
int a[5500];
int n;
scanf("%d",&n);
for(int i=0; i<=n; i++)
a[i]=0;
bool flag=false;
int k=0;
int cnt=n;
while(cnt>3) {
flag=change(flag);
if(flag) {
int p=0;
for(int i=1; i<=n; i++) {
if(!a[i])
p++;
if(p==2) {
a[i]=1;
cnt--;
p=0;
}
}
} else {
int p=0;
for(int i=1; i<=n; i++) {
if(!a[i])
p++;
if(p==3) {
a[i]=1;
cnt--;
p=0;
}
}
}
}
if(n>0)
printf("1");
for(int i=2; i<=n; i++) {
if(!a[i])
printf(" %d",i);
}
printf("\n");
}
return 0;
}


题目地址:【杭电】[1276]士兵队列训练问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杭电 模拟