救救孩子 超时

#include<stdio.h>
int main()
{
	long long num[100000], t, p, number, lucky, max = -1, a, sum = 0, range = 1, m = 0;
	scanf("%lld", &t);
	for (p = 0; p < t; p++)
	{
		scanf("%lld %lld", &number, &lucky);
		for (a = 0; a < number; a++)
			scanf("%lld", &num[a]);
		max = -1;
		range = 1;
		for (a = 0; range <= number;)
		{
			for (m = 0; m < range && a + range - 1 < number; m++)
				sum += num[a + m];
			if (sum % lucky == 0 && sum != 0)
			{
				max = range;
				a = number - range;
			}
			m = 0;
			a++;
			sum = 0;
			if (a == number + 1 - range)
			{
				range++;
				a = 0;
			}
		}
		printf("%lld\n", max);
	}
	return 0;
}
想不到什么更好的方法了。。有大佬可以赐教吗
全部评论

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务