Submission #2853274
Source Code Expand
#include <cstdio> #include <algorithm> #include <cstdlib> #include <cmath> #include <cstring> #include <cctype> #include <set> #define R register #define IN inline #define W while #define IN inline #define gc getchar() #define MX 200500 template <class T> IN void in(T &x) { x = 0; R char c = gc; W (!isdigit(c)) c = gc; W (isdigit(c)) x = (x << 1) + (x << 3) + c - 48, c = gc; } int col[MX][2], fat[MX], bel[MX], dot; struct Vertex {int id;}; IN bool operator < (const Vertex &x, const Vertex &y) { int x0 = col[x.id][0], x1 = col[x.id][1], y0 = col[y.id][0], y1 = col[y.id][1]; return 1ll * x0 * y1 > 1ll * x1 * y0 || (1ll * x0 * y1 == 1ll * x1 * y0 && x.id > y.id); } std::set <Vertex> st; long long ans; namespace DSU { int find(R int now) {return bel[now] == now ? now : bel[now] = find(bel[now]);} IN void combine(const int &from, const int &to) {bel[from] = find(to); col[to][0] += col[from][0], col[to][1] += col[from][1];} } int main(void) { in(dot); R int a, now, fa; for (R int i = 2; i <= dot; ++i) in(fat[i]); for (R int i = 1; i <= dot; ++i) in(a), ++col[i][a], bel[i] = i; for (R int i = 2; i <= dot; ++i) st.insert({i}); W (!st.empty()) { now = DSU::find(st.begin() -> id); st.erase(st.begin()); fa = DSU::find(fat[now]); st.erase({fa}); ans += 1ll * col[fa][1] * col[now][0]; DSU::combine(now, fa); if(fa != 1) st.insert({fa}); } printf("%lld", ans); }
Submission Info
Submission Time | |
---|---|
Task | F - 01 on Tree |
User | lpa20020220 |
Language | C++14 (GCC 5.4.1) |
Score | 1700 |
Code Size | 1452 Byte |
Status | AC |
Exec Time | 169 ms |
Memory | 12800 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1700 / 1700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt, subtask_1_56.txt, subtask_1_57.txt, subtask_1_58.txt, subtask_1_59.txt, subtask_1_60.txt, subtask_1_61.txt, subtask_1_62.txt, subtask_1_63.txt, subtask_1_64.txt, subtask_1_65.txt, subtask_1_66.txt, subtask_1_67.txt, subtask_1_68.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
subtask_1_01.txt | AC | 1 ms | 256 KB |
subtask_1_02.txt | AC | 95 ms | 11520 KB |
subtask_1_03.txt | AC | 51 ms | 6400 KB |
subtask_1_04.txt | AC | 117 ms | 12544 KB |
subtask_1_05.txt | AC | 126 ms | 12160 KB |
subtask_1_06.txt | AC | 21 ms | 2560 KB |
subtask_1_07.txt | AC | 81 ms | 8960 KB |
subtask_1_08.txt | AC | 37 ms | 5632 KB |
subtask_1_09.txt | AC | 91 ms | 8832 KB |
subtask_1_10.txt | AC | 26 ms | 3584 KB |
subtask_1_11.txt | AC | 10 ms | 1536 KB |
subtask_1_12.txt | AC | 62 ms | 7168 KB |
subtask_1_13.txt | AC | 52 ms | 5632 KB |
subtask_1_14.txt | AC | 62 ms | 6528 KB |
subtask_1_15.txt | AC | 13 ms | 1792 KB |
subtask_1_16.txt | AC | 25 ms | 4224 KB |
subtask_1_17.txt | AC | 23 ms | 2816 KB |
subtask_1_18.txt | AC | 79 ms | 7296 KB |
subtask_1_19.txt | AC | 19 ms | 2176 KB |
subtask_1_20.txt | AC | 66 ms | 7168 KB |
subtask_1_21.txt | AC | 22 ms | 2816 KB |
subtask_1_22.txt | AC | 94 ms | 8704 KB |
subtask_1_23.txt | AC | 84 ms | 7680 KB |
subtask_1_24.txt | AC | 69 ms | 7680 KB |
subtask_1_25.txt | AC | 38 ms | 4864 KB |
subtask_1_26.txt | AC | 80 ms | 8192 KB |
subtask_1_27.txt | AC | 95 ms | 9088 KB |
subtask_1_28.txt | AC | 58 ms | 6656 KB |
subtask_1_29.txt | AC | 97 ms | 10752 KB |
subtask_1_30.txt | AC | 123 ms | 12800 KB |
subtask_1_31.txt | AC | 121 ms | 12800 KB |
subtask_1_32.txt | AC | 124 ms | 12800 KB |
subtask_1_33.txt | AC | 103 ms | 12800 KB |
subtask_1_34.txt | AC | 112 ms | 12800 KB |
subtask_1_35.txt | AC | 122 ms | 12800 KB |
subtask_1_36.txt | AC | 145 ms | 12800 KB |
subtask_1_37.txt | AC | 133 ms | 12800 KB |
subtask_1_38.txt | AC | 120 ms | 12800 KB |
subtask_1_39.txt | AC | 76 ms | 12800 KB |
subtask_1_40.txt | AC | 84 ms | 12800 KB |
subtask_1_41.txt | AC | 130 ms | 12800 KB |
subtask_1_42.txt | AC | 107 ms | 12800 KB |
subtask_1_43.txt | AC | 113 ms | 12800 KB |
subtask_1_44.txt | AC | 121 ms | 12800 KB |
subtask_1_45.txt | AC | 136 ms | 12800 KB |
subtask_1_46.txt | AC | 137 ms | 12800 KB |
subtask_1_47.txt | AC | 122 ms | 12800 KB |
subtask_1_48.txt | AC | 53 ms | 12800 KB |
subtask_1_49.txt | AC | 84 ms | 12800 KB |
subtask_1_50.txt | AC | 131 ms | 12800 KB |
subtask_1_51.txt | AC | 161 ms | 12800 KB |
subtask_1_52.txt | AC | 169 ms | 12800 KB |
subtask_1_53.txt | AC | 127 ms | 12800 KB |
subtask_1_54.txt | AC | 115 ms | 12800 KB |
subtask_1_55.txt | AC | 146 ms | 12800 KB |
subtask_1_56.txt | AC | 153 ms | 12800 KB |
subtask_1_57.txt | AC | 123 ms | 12800 KB |
subtask_1_58.txt | AC | 117 ms | 12800 KB |
subtask_1_59.txt | AC | 134 ms | 12800 KB |
subtask_1_60.txt | AC | 142 ms | 12800 KB |
subtask_1_61.txt | AC | 122 ms | 12800 KB |
subtask_1_62.txt | AC | 116 ms | 12800 KB |
subtask_1_63.txt | AC | 145 ms | 12800 KB |
subtask_1_64.txt | AC | 103 ms | 12800 KB |
subtask_1_65.txt | AC | 102 ms | 12800 KB |
subtask_1_66.txt | AC | 88 ms | 11520 KB |
subtask_1_67.txt | AC | 43 ms | 6528 KB |
subtask_1_68.txt | AC | 115 ms | 12544 KB |