Submission #769907

#TimeUsernameProblemLanguageResultExecution timeMemory
769907BlockOGFountain (eJOI20_fountain)C++14
30 / 100
1576 ms1524 KiB
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <cstring>
#include <set>
#include <cmath>

using namespace std;

int diameters[100000];
int nextf[100000];
int capacities[100000];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n, q; cin >> n >> q;
    for (int i = 0; i < n; i++) cin >> diameters[i] >> capacities[i];
    
    for (int i = 0; i < n; i++) {
        nextf[i] = n;
        for (int j = i + 1; j < n; j++) {
            if (diameters[j] > diameters[i]) {
                nextf[i] = j;
                break;
            }
        }
    }
    
    for (int iq = 0; iq < q; iq++) {
        int r, v; cin >> r >> v; r--;
        for (; r < n; r = nextf[r]) {
            v -= capacities[r];
            if (v <= 0) break;
        }
        
        if (r == n) cout << 0 << endl;
        else cout << r + 1 << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...