Submission #875100

#TimeUsernameProblemLanguageResultExecution timeMemory
875100MinaRagy06Sum Zero (RMI20_sumzero)C++17
0 / 100
4 ms12892 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N = 400'005, LG = 7, B = 3; int nxt[LG][N]; map<int, int> lst; ll prfx[N], a[N]; int main() { ios_base::sync_with_stdio(0), cin.tie(0); int n; cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; prfx[i] = prfx[i - 1] + a[i]; } int mn = n + 1; for (int i = n; i >= 0; i--) { if (lst.find(prfx[i]) != lst.end()) { mn = min(mn, lst[prfx[i]]); } lst[prfx[i]] = i; nxt[0][i] = mn; } nxt[0][n + 1] = n + 1; for (int j = 1; j < LG; j++) { for (int i = 0; i <= n + 1; i++) { nxt[j][i] = nxt[j - 1][i]; for (int k = 0; k < B; k++) { nxt[j][i] = nxt[j - 1][nxt[j][i]]; } } } int q; cin >> q; while (q--) { int l, r; cin >> l >> r; l--; int ans = 0; for (int j = LG - 1; j >= 0; j--) { while (nxt[j][l] <= r) { ans += 1 << (B * j); l = nxt[j][l]; } } cout << ans << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...