답안 #1001298

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1001298 2024-06-18T18:20:33 Z dimashhh Fireworks (APIO16_fireworks) C++17
7 / 100
6 ms 35316 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int  N = 4e5 + 30, MOD = 1e9 + 7;

int n,m;
vector<pair<int,int>> g[N];
multiset<ll> st[N];
ll h[N],l[N],r[N];
int mx[N];
void merge(int v,int to){
    mx[v]++;
    for(int j:st[to]){
        st[v].insert(j);
    }
}
ll dist(int to,ll x){
    if(x >= r[to]){
        return h[to] + x - r[to];
    }
    if(x < l[to]){
        return h[to] + l[to] - x;
    }
    return h[to];
}
void dfs(int v,int W = 0){
    if(g[v].empty()){
        st[v].insert(W);
        st[v].insert(W);
        mx[v] = 1;
        h[v] = 0;
        l[v] = r[v] = W;
        return;
    }
    for(auto [to,w]:g[v]){
        dfs(to,w);
        merge(v,to);
    }
    while(mx[v] > 1){
        mx[v]--;
        st[v].erase(st[v].find(*st[v].rbegin()));
    }
    ll x = (*st[v].rbegin());
    st[v].erase(st[v].find(*st[v].rbegin()));
    ll y = (*st[v].rbegin());
    st[v].erase(st[v].find(*st[v].rbegin()));
    st[v].insert(x + W);
    st[v].insert(y + W);
    r[v] = (*st[v].rbegin());
    l[v] = (*(++(st[v].rbegin())));
    for(auto [to,w]:g[v]){
        h[v] += dist(to,r[v] - W);
    }
    // cout << v << ' ' << dist(9,3) << ' ' << h[v] << ' ' << l[v] << ' ' << r[v] << ' ' << "| ";
    // for(int i:st[v]){
    //     cout << i << ' ';
    // }
    // cout << '\n';
}
void test(){
    cin >> n >> m;
    int P = -1;
    for(int i = 2;i <= n + m;i++){
        int a,b;
        cin >> a >> b;
        g[a].push_back({i,b});
        if(a == 1){
            P = i;
        }
    }
    dfs(1);
    cout << h[1] << '\n';
}
int main() {
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t = 1;
    // cin >> t;
    while(t--){
        test();
    }
}

Compilation message

fireworks.cpp: In function 'void test()':
fireworks.cpp:65:9: warning: variable 'P' set but not used [-Wunused-but-set-variable]
   65 |     int P = -1;
      |         ^
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 33116 KB Output is correct
2 Correct 5 ms 35164 KB Output is correct
3 Correct 5 ms 33300 KB Output is correct
4 Correct 5 ms 33116 KB Output is correct
5 Correct 5 ms 33116 KB Output is correct
6 Correct 5 ms 33116 KB Output is correct
7 Correct 5 ms 33116 KB Output is correct
8 Correct 4 ms 33116 KB Output is correct
9 Correct 5 ms 35316 KB Output is correct
10 Correct 4 ms 33116 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 33116 KB Output is correct
2 Correct 5 ms 35164 KB Output is correct
3 Correct 5 ms 33192 KB Output is correct
4 Correct 5 ms 35164 KB Output is correct
5 Correct 4 ms 33116 KB Output is correct
6 Correct 5 ms 33220 KB Output is correct
7 Correct 5 ms 33116 KB Output is correct
8 Correct 6 ms 33116 KB Output is correct
9 Correct 6 ms 33116 KB Output is correct
10 Incorrect 4 ms 33232 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 33116 KB Output is correct
2 Correct 5 ms 35164 KB Output is correct
3 Correct 5 ms 33300 KB Output is correct
4 Correct 5 ms 33116 KB Output is correct
5 Correct 5 ms 33116 KB Output is correct
6 Correct 5 ms 33116 KB Output is correct
7 Correct 5 ms 33116 KB Output is correct
8 Correct 4 ms 33116 KB Output is correct
9 Correct 5 ms 35316 KB Output is correct
10 Correct 4 ms 33116 KB Output is correct
11 Correct 4 ms 33116 KB Output is correct
12 Correct 5 ms 35164 KB Output is correct
13 Correct 5 ms 33192 KB Output is correct
14 Correct 5 ms 35164 KB Output is correct
15 Correct 4 ms 33116 KB Output is correct
16 Correct 5 ms 33220 KB Output is correct
17 Correct 5 ms 33116 KB Output is correct
18 Correct 6 ms 33116 KB Output is correct
19 Correct 6 ms 33116 KB Output is correct
20 Incorrect 4 ms 33232 KB Output isn't correct
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 33116 KB Output is correct
2 Correct 5 ms 35164 KB Output is correct
3 Correct 5 ms 33300 KB Output is correct
4 Correct 5 ms 33116 KB Output is correct
5 Correct 5 ms 33116 KB Output is correct
6 Correct 5 ms 33116 KB Output is correct
7 Correct 5 ms 33116 KB Output is correct
8 Correct 4 ms 33116 KB Output is correct
9 Correct 5 ms 35316 KB Output is correct
10 Correct 4 ms 33116 KB Output is correct
11 Correct 4 ms 33116 KB Output is correct
12 Correct 5 ms 35164 KB Output is correct
13 Correct 5 ms 33192 KB Output is correct
14 Correct 5 ms 35164 KB Output is correct
15 Correct 4 ms 33116 KB Output is correct
16 Correct 5 ms 33220 KB Output is correct
17 Correct 5 ms 33116 KB Output is correct
18 Correct 6 ms 33116 KB Output is correct
19 Correct 6 ms 33116 KB Output is correct
20 Incorrect 4 ms 33232 KB Output isn't correct
21 Halted 0 ms 0 KB -