제출 #1308827

#제출 시각아이디문제언어결과실행 시간메모리
1308827ElayV13Fountain (eJOI20_fountain)C++20
0 / 100
330 ms32516 KiB
//g++ -o solmain1 solmain1.cpp //C:\Users\Asus-1\OneDrive\Desktop #include <bits/stdc++.h> using namespace std; #define int long long const int INF = 1e18; int n , q; int d[100001] , c[100001]; int nxt[20][100001]; int s[20][100001]; signed main() { ios_base::sync_with_stdio(); cin.tie(0); cout.tie(0); cin >> n >> q; for(int i = 1;i <= n;i++) cin >> d[i] >> c[i]; for(int i = 1;i <= n;i++){ s[0][i] = c[i]; for(int j = i;j <= n;j++){ if(d[j] > d[i]){ nxt[0][i] = j; break; } } } for(int i = 1;i < 20;i++) { for(int j = 1;j <= n;j++) { nxt[i][j] = nxt[i - 1][nxt[i - 1][j]]; int half = nxt[i - 1][j]; s[i][j] = s[i - 1][j] + s[i - 1][half]; } } while(q--){ int idx , v; cin >> idx >> v; for(int i = 19;i >= 0;i--){ if(s[i][idx] <= v){ v -= s[i][idx]; if(v > 0) idx = nxt[i][idx]; } } cout << idx << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...