제출 #463399

#제출 시각아이디문제언어결과실행 시간메모리
463399gavgavFountain (eJOI20_fountain)C++14
30 / 100
1584 ms1464 KiB
#include <iostream>
#include <stack>
using namespace std;
int main(){
    uint32_t N, Q, level, volume;
    cin >> N >> Q;
    uint32_t capacitys[N], diametrs[N], nx[N] {};
    stack <uint32_t> meowmeow;
    for (uint i = 0; i < N; i++){
        cin >> diametrs[i] >> capacitys[i];
        while (!meowmeow.empty() && diametrs[meowmeow.top()] < diametrs[i]){
                nx[meowmeow.top()] = i;
                meowmeow.pop();
        }
        meowmeow.push(i);
    }
    for (uint32_t i = 0; i < Q; i++){
        cin >> level >> volume;
        level--;
        do{
            if (volume < capacitys[level] + 1){
                level++;
                break;
            }
            volume -= capacitys[level];
            level = nx[level];
        } while (level);
        cout << level << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...