Submission #1312488

#TimeUsernameProblemLanguageResultExecution timeMemory
1312488kkkkkFountain (eJOI20_fountain)C++20
100 / 100
228 ms32052 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 1e5 + 11; const int inf = 1e9 + 1; int d[N], c[N], up[N][18], sum[N][18]; signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, q; cin >> n >> q; for(int i = 1; i <= n; i++){ cin >> d[i] >> c[i]; } stack < int > st; st.push(0); d[0] = inf, c[0] = inf; for(int i = n; i >= 1; i--){ while(d[st.top()] <= d[i]) st.pop(); up[i][0] = st.top(); sum[i][0] = c[i]; st.push(i); } for(int v = n; v >= 1; v--){ for(int i = 1; i <= 17; i++){ up[v][i] = up[up[v][i - 1]][i - 1]; sum[v][i] = sum[v][i - 1] + sum[up[v][i - 1]][i - 1]; } } while(q--){ int r, v; cin >> r >> v; for(int i = 17; i >= 0; i--){ if(sum[r][i] < v){ v -= sum[r][i]; r = up[r][i]; } } cout << r << '\n'; } } // subete no mono no owari wa sugu ni yattekuru
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...