답안 #459580

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
459580 2021-08-08T17:08:38 Z liza Fountain (eJOI20_fountain) C++14
100 / 100
288 ms 19804 KB
#include<bits/stdc++.h>
#define ll long long
using namespace std;

const int MAX = 19;
int dp[100005][MAX];
int water[100005][MAX];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, q, diam, a, b;
    cin >> n >> q;
    priority_queue<pair<int, int>> pq; // diameter, id

    for (int i = 1; i <= n; i++) {
        cin >> diam >> water[i][0];
        while(!pq.empty() && -pq.top().first < diam) {
            dp[pq.top().second][0] = i;
            pq.pop();
        }
        pq.push({-diam, i});
    }

    while(!pq.empty()) {
        dp[pq.top().second][0] = 0;
        pq.pop();
    }

    dp[0][0] = 0;
    water[0][0] = 0;

    for (int j = 1; j <= MAX - 1; j++) {
        for (int i = 0; i <= n; i++) {
            dp[i][j] = dp[dp[i][j - 1]][j - 1];
            water[i][j] = water[i][j - 1] + water[dp[i][j - 1]][j - 1];
        }
    }

    while(q--) {
        cin >> a >> b;
        for (int j = MAX - 1; j >= 0; j--) {
            if (water[a][j] >= b) {continue;}
            b -= water[a][j];
            a = dp[a][j];
        }

        cout << a << "\n";
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 2 ms 460 KB Output is correct
6 Correct 2 ms 464 KB Output is correct
7 Correct 2 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 192 ms 15100 KB Output is correct
2 Correct 224 ms 14088 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 460 KB Output is correct
5 Correct 2 ms 460 KB Output is correct
6 Correct 2 ms 464 KB Output is correct
7 Correct 2 ms 460 KB Output is correct
8 Correct 192 ms 15100 KB Output is correct
9 Correct 224 ms 14088 KB Output is correct
10 Correct 1 ms 460 KB Output is correct
11 Correct 93 ms 10812 KB Output is correct
12 Correct 288 ms 18896 KB Output is correct
13 Correct 215 ms 19088 KB Output is correct
14 Correct 175 ms 18992 KB Output is correct
15 Correct 156 ms 19804 KB Output is correct