Submission #1273726

#TimeUsernameProblemLanguageResultExecution timeMemory
1273726nguyenbaoanhSum Zero (RMI20_sumzero)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<ll> a(n+1), pre(n+1,0); for(int i=1;i<=n;i++){ cin >> a[i]; pre[i] = pre[i-1] + a[i]; } int q; cin >> q; vector<pair<int,int>> queries(q); for(int i=0;i<q;i++){ int l,r; cin >> l >> r; queries[i] = {l,r}; } // DP vector<int> dp(n+1,0); unordered_map<ll,int> best; best.reserve(n*2); best.max_load_factor(0.7); best[0] = 0; // prefix sum = 0 tại vị trí 0 for(int i=1;i<=n;i++){ dp[i] = dp[i-1]; if(best.count(pre[i])){ dp[i] = max(dp[i], best[pre[i]] + 1); } best[pre[i]] = dp[i]; } // trả lời query for(auto [l,r] : queries){ cout << dp[r] - dp[l-1] << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...