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 }
posted @ 2012-09-11 21:12  YORU  阅读(196)  评论(0编辑  收藏  举报