ARC 169

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

F. Large DP Table

https://atcoder.jp/contests/arc169/tasks/arc169_f