C语言 杭电ACM 1276 士兵队列训练问题
2013-08-13 15:34
411 查看
#include<stdio.h>
#include<string.h>
int main()
{
int n,a,i,j,str1[5050],str2[5050],b;
scanf("%d",&n);
while(n--){
b=0;
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
scanf("%d",&a);
for(i=1;i<=a;i++)
{
str1[i]=i;
}
while(a>=4){
for(i=0,j=0;i<a;i++){
if((i+1)%2!=0){
str2[j+1]=str1[i+1];
j++;
}
}
b=j;
memset(str1,0,sizeof(str1));
if(b<=3){
break;}
for(i=0,j=0;j<b;j++)
{
if((j+1)%3!=0){
str1[i+1]=str2[j+1];
i++;
}
}
a=i;
memset(str2,0,sizeof(str2));
}
if(a<=3){
for(i=0;i<a-1;i++)
printf("%d ",str1[i+1]);
printf("%d\n",str1[a]);}
else if(b<=3){
for(i=0;i<b-1;i++)
printf("%d ",str2[i+1]);
printf("%d\n",str2[b]);}
}
return 0;
}
#include<string.h>
int main()
{
int n,a,i,j,str1[5050],str2[5050],b;
scanf("%d",&n);
while(n--){
b=0;
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
scanf("%d",&a);
for(i=1;i<=a;i++)
{
str1[i]=i;
}
while(a>=4){
for(i=0,j=0;i<a;i++){
if((i+1)%2!=0){
str2[j+1]=str1[i+1];
j++;
}
}
b=j;
memset(str1,0,sizeof(str1));
if(b<=3){
break;}
for(i=0,j=0;j<b;j++)
{
if((j+1)%3!=0){
str1[i+1]=str2[j+1];
i++;
}
}
a=i;
memset(str2,0,sizeof(str2));
}
if(a<=3){
for(i=0;i<a-1;i++)
printf("%d ",str1[i+1]);
printf("%d\n",str1[a]);}
else if(b<=3){
for(i=0;i<b-1;i++)
printf("%d ",str2[i+1]);
printf("%d\n",str2[b]);}
}
return 0;
}
相关文章推荐
- 杭电1276士兵队列的训练问题
- 【ACM】hdu_1276_士兵队列训练问题_201308131032
- 杭电1276士兵队列训练问题
- 杭电1276 士兵队列训练问题
- 【杭电oj】1276 - 士兵队列训练问题(队列,暴力)
- 用链表实现杭电1276士兵队列训练问题
- 杭电1276 士兵队列训练问题
- 杭电 1276士兵队列训练问题
- 杭电--1276--士兵队列训练问题--队列
- 【杭电】[1276]士兵队列训练问题
- 士兵队列训练问题(杭电1276)
- 士兵队列训练问题http://acm.hdu.edu.cn/showproblem.php?pid=1276
- 杭电 1276 士兵队列训练问题
- 杭电 1276 士兵队列训练问题
- 杭电1276:士兵队列训练问题
- HDU杭电1276 士兵队列训练问题
- ACM学习历程—HDU 1276 士兵队列训练问题(队列)
- 杭电ACM 1276 士兵队列训练
- 杭电Problem 1276 士兵队列训练问题
- HDOJ 1276 士兵队列训练问题 (普通队列)