ARC 169
Table of Contents
A. Please Sign
https://atcoder.jp/contests/arc169/tasks/arc169_a
解説 AC
こちらの動画を見て理解した
https://youtu.be/A79qGX7OFMM?si=PPJI_IB_vRbaFFaZ
void solve() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int N;
    cin >> N;
    vll A(N);
    rep(i, N) cin >> A[i];
    vint depth(N);
    vll B(N);
    B[0] = A[0];
    rep2(i, 1, N) {
        int p;
        cin >> p;
        p--;
        depth[i] = depth[p] + 1;
        B[depth[i]] += A[i];
    }
    string ans = "0";
    for (int i = N - 1; i >= 0; i--) {
        if (B[i] == 0)
            continue;
        if (B[i] < 0)
            ans = "-";
        if (B[i] > 0)
            ans = "+";
        break;
    }
    cout << ans << endl;
}
B. Subsegments with Small Sums
https://atcoder.jp/contests/arc169/tasks/arc169_b
C. Not So Consecutive
https://atcoder.jp/contests/arc169/tasks/arc169_c
D. Add to Make a Permutation
https://atcoder.jp/contests/arc169/tasks/arc169_d
E. Avoid Boring Matches
https://atcoder.jp/contests/arc169/tasks/arc169_e