제출 #576553

#제출 시각아이디문제언어결과실행 시간메모리
576553MuntherCarrotFountain (eJOI20_fountain)C++14
60 / 100
68 ms3312 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
#define all(x) x.begin(),x.end()
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,q;
    cin >> n >> q;
    vector<ll> d(n+1,0),c(n+1,0),x(n+1,0);
    for(int i=1;i<=n;i++) cin >> d[i] >> c[i];
    x=c;
    for(int i=1;i<n+1;i++) x[i]+=x[i-1];
    if(n > 1000 || q > 2000){
    while(q--){
        int r,v;
        cin >> r >> v;
        v+=x[r-1];
        int ans=lower_bound(x.begin()+1,x.end(),v)-x.begin();
        cout << (ans > n ? 0:ans) << endl;
    }
    }
    else{
        while(q--){
        int r,v;
        cin >> r >> v;
        int ans=0,idx=0;
        for(int i=r;i<=n;i++){
            ans++;
            if(i != r){
                if(d[i] <= d[idx]) continue;
            }
            idx=i;
            v-=c[i];
            //cout << v  << endl;
            if(v <= 0)break;
        }
        if(v > 0) ans++;
        ans+=r-1;
        cout << (ans > n ? 0:ans) << endl;
    }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...