Submission #1352694

#TimeUsernameProblemLanguageResultExecution timeMemory
1352694bakhtiyarnSum Zero (RMI20_sumzero)C++20
22 / 100
1093 ms8172 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int N = 3e5+5;
int a[N], pre[N];
vector<array<int, 2>> range;

// for(int i=1; i<=n; i++)
void solve(){
    int n; cin >> n;
    for(int i=1; i<=n; i++) cin >> a[i], pre[i] = pre[i-1] + a[i];

    // map<int, int> last;
    // for(int i=n; i>=1; i--){
    //     last[pre[i]] = i;
    //     range[i] = range[i+1];
    //     if(last[pre[i-1]] and ) {
    //         dp[i] = max(dp[i], dp[last[pre[i-1]]+1] + 1);
    //     }
    // }

    int q; cin >> q;
    while(q--){
        int l, r; cin >> l >> r;
        unordered_map<int, int> last, dp;
        for(int i=r; i>=l; i--){
            last[pre[i]] = i;
            dp[i] = dp[i+1];
            if(last[pre[i-1]]) dp[i] = max(dp[i], dp[last[pre[i-1]]+1] + 1);
            // cout << dp[i] << ' ';
        }
        cout << dp[l] << endl;
    }
}

signed main() {
 ios_base::sync_with_stdio(0);
 cin.tie(0);
 cout.tie(0);
 solve();
}



#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...