fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. void solve(){
  6. int n;
  7. cin>>n;
  8. vector<int> v(n);
  9. for(int i=0;i<n;i++)cin>>v[i];
  10. map<int,int> mp;
  11. int sum=0;
  12. for(int i=0;i<n;i++){
  13. sum+=v[i];
  14. mp[sum]=i;
  15. }
  16. sum=0;
  17. int j=n-1;
  18. int i=-1;
  19. int ans=0;
  20. while(j>i){
  21. sum+=v[j];
  22. if(mp.find(sum)!=mp.end() && j>mp[sum]){
  23. i=mp[sum];
  24. ans=max(ans,i+1+n-j);
  25. }
  26. j--;
  27. }
  28. cout<<ans<<endl;
  29.  
  30. }
  31. signed main() {
  32. // your code goes here
  33. int t;
  34. cin>>t;
  35. while(t--){
  36. solve();
  37. }
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5292KB
stdin
4
3
10 20 10
6
2 1 4 2 4 1
5
1 2 4 8 16
9
7 3 20 5 15 1 11 8 10
stdout
2
6
0
7