Submission #2484904


Source Code Expand

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <utility>
#include <cmath>
#include <iomanip>
#include <queue>
#include <map>
#include <set>
#include <random>
#include <sstream>
#include <stack>
#include <deque>

using namespace std;

#define REP(i,a,b) for(int i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vl;

int N;
vector<vi> G;
vector<map<int, int>> C;
vector<priority_queue<int>> ans;
vi sum;
vi used;

int dfs(int n) {
    int s = 1;
    used[n] = 1;
    for (int v : G[n]) {
        if (used[v]) {
            continue;
        }
        int c = 0;
        c = dfs(v);
        C[n][v] = c;
        ans[n].push(c);
        s += c;
    }
    sum[n] = s;
    return s;
}

int main() {
    cin >> N;
    G.resize(N);
    rep(i,N-1) {
        int p;
        cin >> p;
        G[i+1].push_back(p);
        G[p].push_back(i+1);
    }
    used.resize(N, 0);
    C.resize(N);
    ans.resize(N);
    sum.resize(N, 0);
    dfs(0);
    used.clear();
    used.resize(N, 0);
    queue<int> q;
    q.push(0);
    while (!q.empty()) {
        int n = q.front(); q.pop();
        if (used[n]) continue;
        used[n] = 1;
        for (int v : G[n]) {
            if (n) {
                int s = sum[v] - C[v][n];
                // for (auto a : C[v]) {
                //     if (a.first != n) {
                //         s += a.second;
                //     }
                // }
                // cout << n << " " << v << " " << C[n].count(v) << endl;
                if (!C[n].count(v)) {
                    C[n][v] = s;
                    sum[n] += s;
                }
                ans[n].push(s);
            }
            q.push(v);
        }
    }
    
    rep(i,N) cout << ans[i].top() << endl;

    return 0;
}

Submission Info

Submission Time
Task C - 高橋王国の分割統治
User bluenote
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1945 Byte
Status WA
Exec Time 275 ms
Memory 38272 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 2
AC × 4
WA × 7
AC × 5
WA × 13
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt WA 1 ms 256 KB
subtask1_03.txt WA 1 ms 256 KB
subtask1_04.txt WA 1 ms 256 KB
subtask1_05.txt WA 3 ms 512 KB
subtask1_06.txt WA 4 ms 512 KB
subtask1_07.txt AC 3 ms 512 KB
subtask1_08.txt WA 3 ms 512 KB
subtask1_09.txt WA 3 ms 640 KB
subtask2_01.txt WA 189 ms 20480 KB
subtask2_02.txt WA 271 ms 25472 KB
subtask2_03.txt WA 275 ms 27776 KB
subtask2_04.txt WA 274 ms 27776 KB
subtask2_05.txt AC 224 ms 28536 KB
subtask2_06.txt WA 226 ms 28908 KB
subtask2_07.txt WA 230 ms 38272 KB