Submission #3928495

Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;

#define NDEBUG
#include <cassert>


typedef long long ll;
typedef long double Double;
typedef unsigned long long ull;
typedef pair<int,int> ii;
typedef pair<ll,ll> llll;
typedef pair<double,double> dd;

typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef vector<ii> vii;
typedef vector<vector<ii>> vvii;
typedef vector<ll> vll;
typedef vector<vector<ll>> vvll;
typedef vector<llll> vllll;
typedef vector<bool> vb;
typedef vector<string> vs;
typedef vector<double> vd;
typedef vector<long double> vD;

#define sz(a)  int((a).size())
#define pb  push_back
#define eb  emplace_back
#define FOR(var,from,to) for(int var=(from);var<=(to);++var)
#define rep(var,n)  for(int var=0;var<(n);++var)
#define rep1(var,n)  for(int var=1;var<=(n);++var)
#define repC2(vari,varj,n)  for(int vari=0;vari<(n)-1;++vari)for(int varj=vari+1;varj<(n);++varj)
#define repC3(vari,varj,vark,n)  for(int vari=0;vari<(n)-2;++vari)for(int varj=vari+1;varj<(n)-1;++varj)for(int vark=varj+1;vark<(n);++vark)
#define ALL(c)  (c).begin(),(c).end()
#define RALL(c)  (c).rbegin(),(c).rend()
#define tr(i,c)  for(auto i=(c).begin(); i!=(c).end(); ++i)
#define found(s,e)  ((s).find(e)!=(s).end())
#define mset(arr,val)  memset(arr,val,sizeof(arr))
#define mid(x,y) ((x)+((y)-(x))/2)
#define IN(x,a,b) ((a)<=(x)&&(x)<=(b))
#define cons make_pair



vvi child;

int sub(int n) {
    if (child[n].empty()) return 0;

    vi res;
    for (int ch : child[n]) {
        res.pb(sub(ch));
    }
    sort(ALL(res)); reverse(ALL(res));
    rep(i, res.size()) {
        res[i] += (1+i);
    }
    sort(ALL(res));
    return res.back();
}

int solve(int N, vi& a) {
    child.resize(N);
    rep(i,N) {
        if (i == 0) continue;
        child[ a[i] ].pb(i);
    }
    return sub(0);
}

int main() {
    int N; scanf("%d", &N);
    vi a(N);
    for (int i=1; i<N; ++i) {
        scanf("%d", &a[i]);
        a[i]--;
    }
    cout << solve(N,a) << endl;
    return 0;
}

Submission Info

Submission Time
Task B - Tournament
User naoya_t
Language C++14 (GCC 5.4.1)
Score 800
Code Size 2066 Byte
Status
Exec Time 28 ms
Memory 13952 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:73:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     int N; scanf("%d", &N);
                           ^
./Main.cpp:76:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i]);
                           ^

Test Cases

Set Name Score / Max Score Test Cases
Sample 0 / 0 s1.txt, s2.txt, s3.txt
All 800 / 800 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 26 ms 4608 KB
02.txt 26 ms 4608 KB
03.txt 28 ms 4608 KB
04.txt 27 ms 4608 KB
05.txt 27 ms 4608 KB
06.txt 28 ms 4608 KB
07.txt 27 ms 4608 KB
08.txt 27 ms 4608 KB
09.txt 28 ms 4608 KB
10.txt 27 ms 4608 KB
11.txt 26 ms 13952 KB
12.txt 26 ms 11008 KB
13.txt 26 ms 9600 KB
14.txt 25 ms 8064 KB
15.txt 25 ms 7040 KB
16.txt 25 ms 6144 KB
17.txt 25 ms 5504 KB
18.txt 25 ms 5120 KB
19.txt 26 ms 4992 KB
20.txt 26 ms 4992 KB
21.txt 14 ms 4088 KB
22.txt 13 ms 3808 KB
23.txt 13 ms 3820 KB
24.txt 15 ms 3760 KB
25.txt 14 ms 3584 KB
26.txt 15 ms 3456 KB
27.txt 15 ms 3584 KB
28.txt 15 ms 3584 KB
29.txt 15 ms 3584 KB
30.txt 15 ms 3584 KB
31.txt 22 ms 4608 KB
32.txt 21 ms 3968 KB
33.txt 18 ms 3712 KB
34.txt 19 ms 3712 KB
35.txt 18 ms 3840 KB
36.txt 15 ms 3456 KB
37.txt 15 ms 3456 KB
38.txt 14 ms 3456 KB
39.txt 13 ms 3456 KB
40.txt 13 ms 3456 KB
41.txt 1 ms 256 KB
42.txt 1 ms 256 KB
43.txt 1 ms 256 KB
44.txt 1 ms 256 KB
45.txt 1 ms 256 KB
46.txt 1 ms 256 KB
47.txt 1 ms 256 KB
48.txt 1 ms 256 KB
49.txt 1 ms 256 KB
50.txt 1 ms 256 KB
s1.txt 1 ms 256 KB
s2.txt 1 ms 256 KB
s3.txt 1 ms 256 KB