Submission #1231119
Source Code Expand
#include <cstdio> #include <iostream> #include <cmath> #include <cstring> #include <sstream> #include <algorithm> #include <cstdlib> #include <map> #include <queue> #include <utility> #include <vector> #include <set> #include <memory.h> #include <iomanip> #include <bitset> #include <list> #include <stack> #include <deque> using namespace std; #define mod 1000000007 vector<vector<int> > graph(100001); int result[100001]; int parent[100001]; int n; void getparent(int k) { for(int i = 0; i < graph[k].size(); i++){ int next = graph[k][i]; if(parent[next] >= 0 || next == 0) continue; parent[next] = k; getparent(next); } } int getresult(int k) { if(result[k] >= 0) return result[k]; result[k] = 0; for(int i = 0; i < graph[k].size(); i++){ int next = graph[k][i]; if(next == parent[k]) continue; result[k] += getresult(next) + 1; } return result[k]; } int solve(int k) { int sum = 0; int ans = 0; for(int i = 0; i < graph[k].size(); i++){ int next = graph[k][i]; if(next == parent[k]) continue; int tmp = getresult(next); ans = max(ans, tmp + 1); sum += tmp + 1; } // cout << k << " " << sum << endl; ans = max(ans, n - sum - 1); return ans; } int main() { cin >> n; for(int i = 0; i < n; i++){ result[i] = -1; parent[i] = -1; } for(int i = 1; i <= n - 1; i++){ int p; cin >> p; graph[i].push_back(p); graph[p].push_back(i); } getparent(0); for(int i = 0; i < n; i++){ // cout << i << " " << getresult(i) << endl; cout << solve(i) << endl; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 高橋王国の分割統治 |
User | maple |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1610 Byte |
Status | AC |
Exec Time | 221 ms |
Memory | 10240 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
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 | 11 ms | 3196 KB |
sample_02.txt | AC | 2 ms | 2560 KB |
subtask1_01.txt | AC | 2 ms | 2560 KB |
subtask1_02.txt | AC | 2 ms | 2560 KB |
subtask1_03.txt | AC | 2 ms | 2560 KB |
subtask1_04.txt | AC | 3 ms | 2560 KB |
subtask1_05.txt | AC | 4 ms | 2688 KB |
subtask1_06.txt | AC | 4 ms | 2688 KB |
subtask1_07.txt | AC | 4 ms | 2688 KB |
subtask1_08.txt | AC | 4 ms | 2688 KB |
subtask1_09.txt | AC | 4 ms | 2688 KB |
subtask2_01.txt | AC | 154 ms | 6016 KB |
subtask2_02.txt | AC | 202 ms | 6784 KB |
subtask2_03.txt | AC | 221 ms | 7168 KB |
subtask2_04.txt | AC | 210 ms | 7168 KB |
subtask2_05.txt | AC | 185 ms | 7416 KB |
subtask2_06.txt | AC | 185 ms | 7680 KB |
subtask2_07.txt | AC | 204 ms | 10240 KB |