# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1223358 | khome | Fountain (eJOI20_fountain) | C++20 | 98 ms | 112452 KiB |
#include <bits/stdc++.h>
using namespace std;
// #define int long long
// int check(int pos, int sum) {
// }
void solve(){
int n, q; cin >> n >> q;
vector<pair<int, int>> vp(n+1); // diametr & capacity
vector<pair<int, int>> gr(n+1, {0, 1e9}); // child & cost
vector<int> pref(n+1);
for (int i = 1; i <= n; i++) {
cin >> vp[i].first >> vp[i].second;
pref[i] += pref[i-1]+vp[i].second;
// gr[i].second = vp[i].second;
// for (int j = 1; j < i; j++){
// if (gr[j].first == 0 && vp[j].first < vp[i].first) {
// gr[j] = {i, vp[j].second};
// }
// }
}
// auto check = [&](int pos, int sum) -> int {
// while (pos != 0){
// sum-=gr[pos].second;
// if (sum <= 0) break;
// pos = gr[pos].first;
// }
// return pos;
// };
for (int i = 0; i < q; i++){
int ri, vi; cin >> ri >> vi;
auto j = lower_bound(pref.begin(), pref.end(), vi+pref[ri-1]);
int x = distance(pref.begin(), j);
cout << x%(n+1) << endl;
// cout << check(ri, vi) << endl;
}
}
signed main() {
ios_base::sync_with_stdio(0);
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int t = 1;
// cin >> t;
while (t--){solve();}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |