Submission #769906

# Submission time Handle Problem Language Result Execution time Memory
769906 2023-06-30T12:53:54 Z BlockOG Fountain (eJOI20_fountain) C++14
30 / 100
1500 ms 1500 KB
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <cstring>
#include <set>
#include <cmath>

using namespace std;

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

    int n, q; cin >> n >> q;
    int diameters[n];
    int next[n];
    int capacities[n];
    for (int i = 0; i < n; i++) cin >> diameters[i] >> capacities[i];
    
    bool all_increasing = true;
    for (int i = 0; i < n; i++) {
        next[i] = n;
        for (int j = i + 1; j < n; j++) {
            if (diameters[j] > diameters[i]) {
                next[i] = j;
                break;
            }
            all_increasing = false;
        }
    }
    
    if (false && all_increasing) {
        for (int i = 1; i < n; i++) diameters[i] += diameters[i - 1];
        
        for (int iq = 0; iq < q; iq++) {
            int r, v; cin >> r >> v; r--;
            if (r > 0) v += diameters[r - 1];
            if (v > diameters[n - 1]) {
                cout << 0 << endl;
                continue;
            }
            
            cout << lower_bound(diameters, diameters + n, v) - diameters + 1 << endl;
        }
    } else {
        for (int iq = 0; iq < q; iq++) {
            int r, v; cin >> r >> v; r--;
            for (; r < n; r = next[r]) {
                v -= capacities[r];
                if (v <= 0) break;
            }
            
            if (r == n) cout << 0 << endl;
            else cout << r + 1 << endl;
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 2 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
5 Correct 4 ms 212 KB Output is correct
6 Correct 3 ms 212 KB Output is correct
7 Correct 3 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1563 ms 1500 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 2 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 332 KB Output is correct
5 Correct 4 ms 212 KB Output is correct
6 Correct 3 ms 212 KB Output is correct
7 Correct 3 ms 212 KB Output is correct
8 Execution timed out 1563 ms 1500 KB Time limit exceeded
9 Halted 0 ms 0 KB -