# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
862534 | 2023-10-18T12:57:24 Z | blackslex | Sum Zero (RMI20_sumzero) | C++17 | 233 ms | 20252 KB |
#include<bits/stdc++.h> using namespace std; using ll = long long; const int N = 4e5 + 1; int n, q, x, y, cur = -1, par[N], dep[N], lf[N]; ll a; unordered_map<ll, int> mp; void solve() { scanf("%d %d", &x, &y); int ans = 0; x--; while (y && par[y] >= x) ans += (lf[y] >= x ? dep[y] - dep[lf[y]] : 1), y = (lf[y] >= x ? lf[y] : par[y]); printf("%d\n", ans); } int main() { scanf("%d", &n); dep[0] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &x); a += x; if (!a || mp[a]) cur = max(cur, mp[a]); mp[a] = i; par[i] = cur; dep[i] = (~cur ? dep[par[i]] + 1 : 1); lf[i] = (~cur && dep[par[i]] - dep[lf[par[i]]] == dep[lf[par[i]]] - dep[lf[lf[par[i]]]] ? lf[lf[par[i]]] : par[i]); } scanf("%d", &q); while (q--) solve(); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 4444 KB | Output is correct |
2 | Correct | 2 ms | 4700 KB | Output is correct |
3 | Correct | 3 ms | 4700 KB | Output is correct |
4 | Correct | 3 ms | 4444 KB | Output is correct |
5 | Correct | 3 ms | 4440 KB | Output is correct |
6 | Correct | 3 ms | 4952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 4444 KB | Output is correct |
2 | Correct | 2 ms | 4700 KB | Output is correct |
3 | Correct | 3 ms | 4700 KB | Output is correct |
4 | Correct | 3 ms | 4444 KB | Output is correct |
5 | Correct | 3 ms | 4440 KB | Output is correct |
6 | Correct | 3 ms | 4952 KB | Output is correct |
7 | Correct | 48 ms | 6572 KB | Output is correct |
8 | Correct | 44 ms | 7268 KB | Output is correct |
9 | Correct | 51 ms | 5716 KB | Output is correct |
10 | Correct | 47 ms | 6664 KB | Output is correct |
11 | Correct | 42 ms | 6584 KB | Output is correct |
12 | Correct | 51 ms | 5576 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 4444 KB | Output is correct |
2 | Correct | 2 ms | 4700 KB | Output is correct |
3 | Correct | 3 ms | 4700 KB | Output is correct |
4 | Correct | 3 ms | 4444 KB | Output is correct |
5 | Correct | 3 ms | 4440 KB | Output is correct |
6 | Correct | 3 ms | 4952 KB | Output is correct |
7 | Correct | 48 ms | 6572 KB | Output is correct |
8 | Correct | 44 ms | 7268 KB | Output is correct |
9 | Correct | 51 ms | 5716 KB | Output is correct |
10 | Correct | 47 ms | 6664 KB | Output is correct |
11 | Correct | 42 ms | 6584 KB | Output is correct |
12 | Correct | 51 ms | 5576 KB | Output is correct |
13 | Correct | 217 ms | 13408 KB | Output is correct |
14 | Correct | 206 ms | 15732 KB | Output is correct |
15 | Correct | 222 ms | 7888 KB | Output is correct |
16 | Correct | 222 ms | 16116 KB | Output is correct |
17 | Correct | 198 ms | 20252 KB | Output is correct |
18 | Correct | 233 ms | 14928 KB | Output is correct |