Submission #65907423


Source Code Expand

Copy
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
const vector<char> alpha = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int dx[4] = {0, 1, 0, -1};
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
const vector<char> alpha = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
const ll INF = 1e9 + 7;
const ll MOD = 998244353;
template <typename T> bool chmax(T &a, T b) {if (a < b) {a = b;return true;}return false;}
template <typename T> bool chmin(T &a, T b) {if (a > b) {a = b;return true;}return false;}
vector<char> q={'v','>','^','<'};

int main(){
    int N;
    cin >> N;
    vector<pair<int,int>> edges(N-1);
    vvi adj(N);
    REP(i, N-1){
        int u, v;
        cin >> u >> v;
        --u; --v;
        edges[i] = {u, v};
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    vector<int> par(N, -1), tin(N), tout(N);
    int timer = 0;
    stack<pair<int,int>> st;
    st.push({0, 0});
    par[0] = -1;

    while(!st.empty()){
        int v = st.top().first;
        int &i = st.top().second;
        if (i == 0) {
            tin[v] = ++timer;
        }
        if (i < (int)adj[v].size()){
            int u = adj[v][i++];
            if (u == par[v]) continue;
            par[u] = v;
            st.push({u, 0});
        } else {
            tout[v] = timer;
            st.pop();
        }
    }

    vector<int> child(N-1);
    REP(i, N-1){
        int u = edges[i].first, v = edges[i].second;
        if (par[v] == u) child[i] = v;
        else child[i] = u;
    }

    vector<ll> bit(N+1, 0);
    auto add = [&](int i, ll v){
        for (; i <= N; i += i & -i) bit[i] += v;
    };
    auto sum = [&](int i){
        ll s = 0;
        for (; i > 0; i -= i & -i) s += bit[i];
        return s;
    };
    auto range_sum = [&](int l, int r){
        return sum(r) - sum(l-1);
    };

    REP(v, N) add(tin[v], 1);
    ll total = N;

    int Q;
    cin >> Q;
    while (Q--){
        int t;
        cin >> t;
        if (t == 1){
            int x; ll w;
            cin >> x >> w;
            --x;
            add(tin[x], w);
            total += w;
        } else {
            int y;
            cin >> y;
            --y;
            int v = child[y];
            ll s = range_sum(tin[v], tout[v]);
            ll diff = total - 2*s;
            if (diff < 0) diff = -diff;
            cout << diff << endl;
        }
    }
}

Submission Info

Submission Time
Task F - Compare Tree Weights
User una_o0
Language C++ 17 (gcc 12.2)
Score 500
Code Size 2980 Byte
Status AC
Exec Time 581 ms
Memory 30788 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 1
AC × 43
Set Name Test Cases
Sample example_00.txt
All example_00.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, hand_09.txt, hand_10.txt, hand_11.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt
Case Name Status Exec Time Memory
example_00.txt AC 1 ms 3540 KiB
hand_00.txt AC 441 ms 30312 KiB
hand_01.txt AC 406 ms 30108 KiB
hand_02.txt AC 461 ms 29252 KiB
hand_03.txt AC 311 ms 29300 KiB
hand_04.txt AC 581 ms 29472 KiB
hand_05.txt AC 571 ms 29224 KiB
hand_06.txt AC 1 ms 3428 KiB
hand_07.txt AC 432 ms 29768 KiB
hand_08.txt AC 442 ms 28988 KiB
hand_09.txt AC 439 ms 29104 KiB
hand_10.txt AC 430 ms 29488 KiB
hand_11.txt AC 423 ms 30788 KiB
random_00.txt AC 448 ms 29220 KiB
random_01.txt AC 439 ms 29468 KiB
random_02.txt AC 439 ms 29544 KiB
random_03.txt AC 443 ms 29228 KiB
random_04.txt AC 435 ms 29460 KiB
random_05.txt AC 405 ms 30364 KiB
random_06.txt AC 406 ms 30044 KiB
random_07.txt AC 408 ms 30148 KiB
random_08.txt AC 413 ms 30372 KiB
random_09.txt AC 407 ms 30020 KiB
random_10.txt AC 453 ms 29204 KiB
random_11.txt AC 448 ms 29372 KiB
random_12.txt AC 447 ms 29300 KiB
random_13.txt AC 448 ms 29220 KiB
random_14.txt AC 446 ms 29380 KiB
random_15.txt AC 445 ms 29240 KiB
random_16.txt AC 448 ms 29308 KiB
random_17.txt AC 452 ms 29312 KiB
random_18.txt AC 451 ms 29196 KiB
random_19.txt AC 449 ms 29224 KiB
random_20.txt AC 445 ms 29240 KiB
random_21.txt AC 444 ms 29368 KiB
random_22.txt AC 446 ms 29216 KiB
random_23.txt AC 448 ms 29244 KiB
random_24.txt AC 442 ms 29276 KiB
random_25.txt AC 445 ms 29204 KiB
random_26.txt AC 448 ms 29308 KiB
random_27.txt AC 441 ms 29368 KiB
random_28.txt AC 454 ms 29284 KiB
random_29.txt AC 444 ms 29368 KiB


2025-06-06 (Fri)
18:38:51 +09:00