fork(2) download
  1. #include <bits/stdc++.h>
  2. #include <string.h>
  3. #define int long long
  4. #define inf 5e18
  5. #define MOD (int)(1e9 + 7)
  6. #define pb push_back
  7. #define vi vector<int>
  8. using namespace std;
  9. signed main()
  10. {
  11. int n,k;
  12. cin>>n>>k;
  13. vi a(n);
  14. int sum = 0;
  15. for(int i=0;i<n;i++) cin>>a[i], sum += a[i];
  16. if(sum%k == 0) return cout<<0, 0;
  17. vi pref(n);
  18. pref[0] = a[0]%k;
  19. for(int i=1;i<n;i++) {
  20. pref[i] = (pref[i-1] + a[i]) % k;
  21. }
  22. int m = sum%k;
  23. int mn = inf;
  24. map<int,int> mp;
  25. for(int i=0;i<n;i++) {
  26. int reqd = (pref[i]- m%k + k)%k;
  27. if(mp[reqd]) mn = min(mn, i+1-mp[reqd]);
  28. mp[pref[i]] = i+1;
  29. }
  30. cout<<mn;
  31. return 0;
  32. }
  33.  
  34.  
  35. /*
  36. max factors number = 720720 --> 240 factors
  37. max factors number = 1441440 -->288 factors
  38. Beautiful program
  39. Please run for me.
  40. I've tried you in BASIC,
  41. FORTRAN and C.
  42. Beautiful program,
  43. You've errors galore.
  44. And each time I run you,
  45. You're swapped out of core.
  46. */
Success #stdin #stdout 0s 4356KB
stdin
6 10
7 10 9 6 9 4
stdout
2