本文主要是介绍题目1477:怪异的洗牌,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目 http://ac.jobdu.com/problem.php?pid=1477
#include<stdio.h>
void move(int n,int x,int a[],int b[]){int pos=0,i;if(x<=n/2){for(i=n/2+x;i>=x+1;i--)b[++pos]=a[i];for(i=n/2+x+1;i<=n;i++)b[++pos]=a[i];for(i=1;i<=x;i++)b[++pos]=a[i];}else{for(i=n/2-n+x;i>=1;i--)b[++pos]=a[i];for(i=n;i>=x+1;i--)b[++pos]=a[i];for(i=n/2-n+x+1;i<=x;i++)b[++pos]=a[i];}
}
int main(){int n,k,x,i;int a[1005],b[1005];while(scanf("%d%d",&n,&k)&&n!=0){for(i=1;i<=1000;i++) a[i]=i;bool flag=true;while(k--){scanf("%d",&x);if(flag) move(n,x,a,b);else move(n,x,b,a);flag=!flag;}if(flag)for(i=1;i<=n;i++)printf("%d ",a[i]);elsefor(i=1;i<=n;i++)printf("%d ",b[i]);printf("\n");}return 0;
}/**************************************************************Problem: 1477Language: C++Result: AcceptedTime:10 msMemory:1020 kb
****************************************************************/
这篇关于题目1477:怪异的洗牌的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!