小火龙有一个数组 a ,他讨厌整数 x ,所以他希望得到一个所有元素之和不能被 x 整除的非整除子数组,请你告诉他可以得到的最长子数组的长度,如果该子数组不存在,则输出 −1 。
1≤n≤105,1≤x≤104,0≤ai≤104
TLE 40pts
#include<bits/stdc++.h>
using namespace std;
const int N = 1E5+5;
int n,x,a[N],s[N],ans=-1;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>x;
for(int i=1;i<=n;++i){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
for(int i=0;i<=n;++i){
for(int j=i+1;j<=n;++j){
int t=s[j]-s[i];
if(t%x!=0) ans=max(ans,j-i);
}
}
cout<<ans;
return 0;
}