1486.cpp

来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 42 行

CPP
42
字号
/*  This Code is Submitted by wywcgs for Problem 1486 on 2005-10-01 at 11:49:39 */ 
#include <stdio.h>
#include <memory.h>

int main()
{
	long mod[10000];
	long sum, M, N, e, max, t;
	long i;
	
	while(scanf("%ld %ld", &N, &M) == 2) {
		sum = 0;
		memset(mod, -1, sizeof(mod));
		max = -1;
		for(i = 0; i < N; i++) {
			scanf("%ld", &e);
			sum = (sum + e) % M;
			while(1) {
				if(sum >= 0) {
					break;
				} else {
					sum += M;
				}
			}
			if(mod[sum] == -1) {
				mod[sum] = i;
			}
			if(sum == 0) {
				t = i + 1;
			} else {
				t = i - mod[sum];
			}
			if(t > max) {
				max = t;
			}
		}
		printf("%ld\n", max);
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?