提交时间:2026-10-29 14:42:21
运行 ID: 43414
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; int n,p,a[N],lst[N],pre[N],f[N]; int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n>>p; for(int i=1;i<=n;i++)cin>>a[i],a[i]=(a[i]+a[i-1])%p,lst[i]=-1; for(int i=0;i<=n;i++){ pre[i]=lst[a[i]]; lst[a[i]]=i; } for(int i=1;i<=n;i++){ if(pre[i]!=-1)f[i]=max(f[i-1],f[pre[i]]+1); else f[i]=f[i-1]; } cout<<f[n]; return 0; }