hdu4350 Card-----多校联合六
水题。
#include<iostream>#include<cstdlib>#include<stdio.h>using namespace std;int num[53];int n,l,r;int mm;int ff[53];int tt[53];void count(){ while(1) { int cc=1; for(int i=l;i<=r;i++) tt[cc++]=ff[i]; for(int i=1;i<l;i++) tt[cc++]=ff[i]; for(int i=r+1;i<=52;i++) tt[cc++]=ff[i]; //cout<<"&"<<endl; /*for(int i=1;i<=52;i++) cout<<tt[i]<<" "; cout<<endl;*/ mm++; int j; for(j=1;j<=52;j++) if(tt[j]!=num[j]) break; //cout<<j<<"*"<<endl; if(j>=52) return ; else { for(int i=1;i<=52;i++) ff[i]=tt[i]; } } return ;}void change(){ int uu=1; while(uu<=n) { int cc=1; for(int i=l;i<=r;i++) ff[cc++]=num[i]; for(int i=1;i<l;i++) ff[cc++]=num[i]; for(int i=r+1;i<=52;i++) ff[cc++]=num[i]; for(int i=1;i<=52;i++) num[i]=ff[i]; uu++; } return ;}int main(){ int ccount=1; int t; scanf("%d",&t); while(t--) { for(int i=1;i<=52;i++) { scanf("%d",&num[i]); ff[i]=num[i]; } scanf("%d%d%d",&n,&l,&r); mm=0; count(); // cout<<mm<<"*"<<endl; n=n%mm; change(); printf("Case #%d:",ccount++); for(int i=1;i<=52;i++) printf(" %d",num[i]); printf("\n"); }}