HDU 4350 Card
http://acm.hdu.edu.cn/showproblem.php?pid=4350
取余。
举例子 3 3
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5.
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5.
由图可以看出,取的恰好是N个(L-R+1)的长度,然后就可以取余可以求得现在相对于R位置的位置。
View Code
1 #include <stdio.h> 2 #define maxn 52 3 int ans[maxn]; 4 int main() 5 { 6 long t,n,l,r,d=0,i,j,mark; 7 scanf("%ld",&t); 8 d=0; 9 while(t--) 10 { 11 d++; 12 for(i=1;i<=maxn;i++) 13 scanf("%ld",&ans[i]); 14 scanf("%ld%ld%ld",&n,&l,&r); 15 mark=((n%r)*(r-l+1)%r)%r; 16 mark=r-mark+1; 17 printf("Case #%d:",d); 18 for(i=mark;i<=r;i++) 19 printf(" %ld",ans[i]); 20 for(i=1;i<mark;i++) 21 printf(" %ld",ans[i]); 22 for(i=r+1;i<=maxn;i++) 23 printf(" %ld",ans[i]); 24 printf("\n"); 25 } 26 return 0; 27 }