Submission #465891

#TimeUsernameProblemLanguageResultExecution timeMemory
465891FulopMateFountain (eJOI20_fountain)C++14
30 / 100
1582 ms1976 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define all(c) (c).begin(), (c).end()
#define MIN(a, b) ((a) = min((a), (b)))
#define MAX(a, b) ((a) = max((a), (b)))

const ll MOD = 1e9+7;
const int abc = 'z'-'a'+1;

int n, q;
vector<int> d, c;
vector<int> v;

void solve(){
    cin>>n>>q;
    d.resize(n); c.resize(n);
    for(int i = 0; i < n; i++){
        cin>>d[i]>>c[i];
    }
    v.resize(n);
    stack<int> s;
    for(int i = n-1; i >= 0; i--){
        while(!s.empty() && d[s.top()] <= d[i])s.pop();
        if(s.empty())v[i] = n;
        else v[i] = s.top();
        s.push(i);
    }
    while(q--){
        int a, b; cin>>a>>b; a--;
        b -= c[a];
        while(b > 0 && a < n){
            a = v[a];
            b -= c[a];
        }
        cout<<(a+1)%(n+1)<<endl;
    }
    cout<<endl;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int _t;
    _t = 1;
    while(_t--){
        solve();
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...