http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2223/pid/3326
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int len,n,m;
int a[10010],b[10010];
int main()
{
scanf("%d",&n);
while(n--){
scanf("%d %d",&m,&len);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=0;i < m;i++){
scanf("%d",&a[i]);
}
int j=0;
for(int i = len;i < m;i++){
b[j++] = a[i];
}
for(int i = 0;i < len;i++){
b[j++] = a[i];
}
for(int i = 0;i < m;i++){
printf(i==0?"%d":" %d",b[i]);
}
printf("\n");
}
return 0;
}
链表实现:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int len,n,m;
typedef struct{
int *elem;
int length;
int listsize;
}List;
void create(List &l,int n)
{
l.elem = new int[1000010];
if(!l.elem) exit(0);
for(int i = 0;i < n;i++)
cin>>l.elem[i];
l.length = n;
}
void display(List &l,int len,int m)
{
int i,j;
while(m--){
j = l.elem[0];
for(i = 1;i < len;i++){
l.elem[i-1] = l.elem[i];
}
l.elem[len-1] = j;
}
}
int main()
{
cin>>n;
List l;
while(n--)
{
cin>>len>>m;
create(l,len);
display(l,len,m);
for(int i = 0;i < len;i++){
printf(i==0?"%d":" %d",l.elem[i]);
}
printf("\n");
}
return 0;
}