답안 #769905

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
769905 2023-06-30T12:53:32 Z BlockOG Fountain (eJOI20_fountain) C++14
0 / 100
154 ms 1992 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 (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;
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Incorrect 3 ms 212 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 154 ms 1992 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Incorrect 3 ms 212 KB Output isn't correct
6 Halted 0 ms 0 KB -