Submission #1100633
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
struct Initializer {
Initializer() {
cin.tie(0);
ios::sync_with_stdio(0);
cout << fixed << setprecision(15);
}
} initializer;
template<typename T> istream& operator>>(istream &s, vector<T> &v) {
for (T &t : v) s >> t;
return s;
}
template<typename T> ostream& operator<<(ostream &s, const vector<T> &v) {
for (const T &t : v) s << t << endl;
return s;
}
template<typename T> T min(vector<T>& v) {return *min_element(v.begin(), v.end());}
template<typename T> T max(vector<T>& v) {return *max_element(v.begin(), v.end());}
template<typename T> int min_element(vector<T>& v) {return min_element(v.begin(), v.end()) - v.begin();}
template<typename T> int max_element(vector<T>& v) {return max_element(v.begin(), v.end()) - v.begin();}
template<typename T> void sort(vector<T>& v) {sort(v.begin(), v.end());}
template<typename T, typename Function> void sort(vector<T>& v, Function func) {sort(v.begin(), v.end(), func);}
template<typename T> void rsort(vector<T>& v) {sort(v.rbegin(), v.rend());}
template<typename T> void reverse(vector<T>& v) {reverse(v.begin(), v.end());}
template<typename T> void unique(vector<T>& v) {v.erase(unique(v.begin(), v.end()), v.end());}
template<typename T> void nth_element(vector<T>& v, int n) {nth_element(v.begin(), v.begin() + n, v.end());}
template<typename T> bool next_permutation(vector<T>& v) {return next_permutation(v.begin(), v.end());}
template<typename T> int find(vector<T>& v, T t) {return find(v.begin(), v.end(), t) - v.begin();}
template<typename T> int in(vector<T> v, T t) {return find(v, t) != int(v.size());}
template<typename T> int lower_bound(vector<T>& v, T t) {return lower_bound(v.begin(), v.end(), t) - v.begin();}
template<typename T> int upper_bound(vector<T>& v, T t) {return upper_bound(v.begin(), v.end(), t) - v.begin();}
template<typename T> T accumulate(const vector<T>& v, function<T(T, T)> func = plus<T>()) {return accumulate(v.begin(), v.end(), T(), func);}
template<typename T> void adjacent_difference(vector<T>& v) {adjacent_difference(v.begin(), v.end(), v.begin());}
template<typename T> void adjacent_difference(vector<T>& v, vector<T>& u) {adjacent_difference(v.begin(), v.end(), u.begin());}
template<typename T> void partial_sum(vector<T>& v, vector<T>& u) {partial_sum(v.begin(), v.end(), u.begin());}
template<typename T> T inner_product(vector<T>& v, vector<T>& u) {return inner_product(v.begin(), v.end(), u.begin(), T(0));}
template<typename T> int count(const vector<T>& v, T t) {return count(v.begin(), v.end(), t);}
template<typename T, typename Function> int count_if(const vector<T>& v, Function func) {return count_if(v.begin(), v.end(), func);}
template<typename T, typename Function> void remove_if(vector<T>& v, Function func) {v.erase(remove_if(v.begin(), v.end(), func), v.end());}
template<typename T, typename Function> bool any_of(vector<T> v, Function func) {return any_of(v.begin(), v.end(), func);}
template<typename T> vector<T> subvector(vector<T>& v, int a, int b) {return vector<T>(v.begin() + a, v.begin() + b);}
template<typename T> int kinds(const vector<T>& v) {return set<T>(v.begin(), v.end()).size();}
template<typename T> void iota(vector<T>& v, T t = 0) {iota(v.begin(), v.end(), t);}
template<typename T> bool is_sorted(const vector<T>& v) {return is_sorted(v.begin(), v.end());}
int solve(int w, const vector<vector<int>>& v) {
if (v[w].empty()) return 0;
vector<int> u;
for (int i : v[w]) u.emplace_back(solve(i, v));
sort(u);
for (uint i = 0; i < u.size(); ++i) u[i] += u.size() - i;
return max(u);
}
int main() {
int n;
cin >> n;
vector<int> a(n - 1);
cin >> a;
vector<vector<int>> b(n);
for (int i = 0; i < n - 1; ++i) b[a[i] - 1].emplace_back(i + 1);
cout << solve(0, b) << endl;
}
Submission Info
Submission Time |
|
Task |
B - Tournament |
User |
not |
Language |
C++14 (GCC 5.4.1) |
Score |
800 |
Code Size |
3838 Byte |
Status |
AC |
Exec Time |
35 ms |
Memory |
13952 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
800 / 800 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, s1.txt, s2.txt, s3.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
29 ms |
4608 KB |
02.txt |
AC |
29 ms |
4608 KB |
03.txt |
AC |
29 ms |
4736 KB |
04.txt |
AC |
29 ms |
4608 KB |
05.txt |
AC |
29 ms |
4608 KB |
06.txt |
AC |
29 ms |
4608 KB |
07.txt |
AC |
29 ms |
4608 KB |
08.txt |
AC |
29 ms |
4608 KB |
09.txt |
AC |
29 ms |
4608 KB |
10.txt |
AC |
29 ms |
4608 KB |
11.txt |
AC |
35 ms |
13952 KB |
12.txt |
AC |
33 ms |
11008 KB |
13.txt |
AC |
32 ms |
9600 KB |
14.txt |
AC |
30 ms |
8064 KB |
15.txt |
AC |
29 ms |
7040 KB |
16.txt |
AC |
28 ms |
6144 KB |
17.txt |
AC |
28 ms |
5632 KB |
18.txt |
AC |
28 ms |
5120 KB |
19.txt |
AC |
28 ms |
4992 KB |
20.txt |
AC |
29 ms |
4992 KB |
21.txt |
AC |
15 ms |
4216 KB |
22.txt |
AC |
15 ms |
3808 KB |
23.txt |
AC |
15 ms |
3828 KB |
24.txt |
AC |
14 ms |
3760 KB |
25.txt |
AC |
14 ms |
3584 KB |
26.txt |
AC |
15 ms |
3584 KB |
27.txt |
AC |
15 ms |
3584 KB |
28.txt |
AC |
14 ms |
3584 KB |
29.txt |
AC |
16 ms |
3584 KB |
30.txt |
AC |
16 ms |
3584 KB |
31.txt |
AC |
24 ms |
4608 KB |
32.txt |
AC |
23 ms |
4096 KB |
33.txt |
AC |
21 ms |
3840 KB |
34.txt |
AC |
21 ms |
3840 KB |
35.txt |
AC |
20 ms |
3840 KB |
36.txt |
AC |
17 ms |
3456 KB |
37.txt |
AC |
16 ms |
3456 KB |
38.txt |
AC |
15 ms |
3456 KB |
39.txt |
AC |
15 ms |
3456 KB |
40.txt |
AC |
14 ms |
3456 KB |
41.txt |
AC |
3 ms |
256 KB |
42.txt |
AC |
3 ms |
256 KB |
43.txt |
AC |
3 ms |
256 KB |
44.txt |
AC |
3 ms |
256 KB |
45.txt |
AC |
3 ms |
256 KB |
46.txt |
AC |
3 ms |
256 KB |
47.txt |
AC |
3 ms |
256 KB |
48.txt |
AC |
3 ms |
256 KB |
49.txt |
AC |
3 ms |
256 KB |
50.txt |
AC |
3 ms |
256 KB |
s1.txt |
AC |
3 ms |
256 KB |
s2.txt |
AC |
3 ms |
256 KB |
s3.txt |
AC |
3 ms |
256 KB |