首页 > 其他 > 详细

POJ 2356 - Find a multiple

时间:2014-07-29 12:17:26      阅读:333      评论:0      收藏:0      [点我收藏+]

鸽笼原理题,以后得好好研究下相关题目。

 1 /*
 2 ID:esxgx1
 3 LANG:C++
 4 PROG:poj2356
 5 */
 6 #include <cstdio>
 7 #include <cstring>
 8 #include <iostream>
 9 #include <algorithm>
10 using namespace std;
11 
12 #define NN    10007
13 
14 int _sum[NN], *sum = &_sum[1];
15 int lookup[NN];
16 
17 int main(void)
18 {
19     #ifndef ONLINE_JUDGE
20     freopen("in.txt", "r", stdin);
21     #endif
22 
23     int N, i;
24     scanf("%d", &N);
25     sum[-1] = 0;
26     for(i=0; i<N; ++i) {
27         int k;
28         scanf("%d", &k);
29         sum[i] = sum[i-1] + k;
30         if (lookup[sum[i] % N]) k = lookup[sum[i]  % N];
31         else if (!(sum[i] % N)) k = 0;
32         else k = -1;
33 
34         if (k >= 0) {
35             printf("%d\n", i-k+1);
36             while(k <= i) {
37                 printf("%d\n", sum[k] - sum[k-1]);
38                 ++k;
39             }
40             break;
41         } else lookup[sum[i] % N] = i+1;
42     } 
43     if (i >= N) printf("0\n");
44     return 0;
45 }

 

2356 Accepted 744K 94MS G++ 751B 2014-07-29 08:35:46

POJ 2356 - Find a multiple,布布扣,bubuko.com

POJ 2356 - Find a multiple

原文:http://www.cnblogs.com/e0e1e/p/poj_2356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!