提交时间:2026-10-29 15:28:44
运行 ID: 43423
#include <bits/stdc++.h> using namespace std; #define int long long const int N=1e6+5; int n,k,a[N],p1[N],p2[N],f[N]; signed main(){ cin >> n >> k; for(int i=1; i<=n; i++){ cin >> a[i]; a[i] = (a[i-1]+a[i])%k; } for(int i=0; i<k; i++) p2[i] = -1; for(int i=0; i<=n; i++){ p1[i] = p2[a[i]]; p2[a[i]] = i; } for(int i=1; i<=n; i++){ if(p1[i]!=-1) f[i] = max(f[i-1],f[p1[i]]+1); else f[i] = f[i-1]; } cout << f[n]; return 0; }