出题人绝逼傻比了。。。尼玛这题怎么那么多歧义?????比赛时8WA无果,,下来WA12次。。。。整整20次啊。。。。真特么爽!
题意不说了,,,没啥价值的题目。
留一组数据:
4 5
-4 1 2 10,
应该输出
1
如果你也一直跪,,不妨试试看。另外,可以全部选完。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
#include<stdio.h> #include<string.h> #include<math.h> #define N 100010 #define M 10010 #define max(x,y) x>y?x:y int n; int m; int p1[M]; int p2[M]; int main() { while (scanf("%d%d",&n,&m)==2){ memset(p1,-1,sizeof(p1)); memset(p2,-1,sizeof(p2)); int s = 0; for (int i=1;i<=n;i++) { int x; scanf("%d",&x); x = (x%m+m)%m; s = (s + x)%m; if (p1[s]==-1) p1[s] = i; p2[s] = i; } if (p1[0]!=-1) p1[0] = 0; int ans = 0; for (int i=0;i<m;i++) ans = max(ans , p2[i]-p1[i]); printf("%d\n",ans); } return 0; } /* 4 5 -4 1 2 10 */