#include<stdio.h>
#include<stdlib.h>
int main()
{
int N,i,j,M,k,m,temp1,temp;
scanf("%d %d",&N,&M);
M=M%N;//M可能大于N
int*a=(int*)malloc(sizeof(int)*N);
for(i=0;i<N;++i)
{
scanf("%d",&a[i]);
}
if(M==0){
for(i=0;i<N;++i)
{
printf("%d",a[i]);
if(i!=N-1)printf(" ");
}
return 0;
}
if(N%M!=0)
{
temp=a[0];
for(i=0,k=0;k<N;++k)
{
j=(i+M)%N;
temp1=temp;
temp=a[j];
a[j]=temp1;
i=j;
}
}
else{
for(m=0;m<M;++m)
{
temp=a[m];
for(i=m,k=0;k<N/M;++k)
{
j=(i+M)%N;
temp1=temp;
temp=a[j];
a[j]=temp1;
i=j;
}
}
}
for(i=0;i<N;++i)
{
printf("%d",a[i]);
if(i!=N-1)printf(" ");
}
return 0;
}
注意大坑
M可能大于N,因此需要M%N