제출 #1197895

#제출 시각아이디문제언어결과실행 시간메모리
1197895illzenoFountain (eJOI20_fountain)C++20
30 / 100
63 ms2120 KiB
#include <bits/stdc++.h>
using namespace std;
void solve(){
    long long n,m;
    cin >> n >> m;
    vector<long long>d(n+1),c(n+1);
    vector<vector<long long>>a(19);
    for(int i = 1;i<=n;i++){
        cin >> d[i] >> c[i];
        for(int j = 19;j>=0;j--){
            if(d[i]>(1<<j)){
                a[j].push_back(i);
            }
        }
    }
    for(int i = 1;i<=m;i++){
        long long x,y;
        cin >> x >> y;
        long long k = 0;
        y-=c[x];
        while(y>0){
            
            for(int j = 19;j>=0;j--){
                if(d[x]>=(1<<j)){
                    k = j;
                    break;
                }
            }
            long long c1 =0;
            for(auto to:a[k]){
                if(to>x && d[to]>d[x]){
                    x = to;
                    c1 = 1;
                    break;
                }
            }
            if(c1 == 0){
                x = 0;
                break;
            }
            y-=c[x];
            
        }
        cout << x << '\n';
        
    }
    
}
int main(){
    long long ht = 1;
    //cin >> ht;
    while(ht--)solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...