Submission #945258

# Submission time Handle Problem Language Result Execution time Memory
945258 2024-03-13T15:23:51 Z vladilius Cat Exercise (JOI23_ho_t4) C++17
0 / 100
2 ms 4956 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int msz = 2e5 + 5;
using pii = pair<int, int>;

vector<int> g[msz];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int n; cin>>n;
    vector<int> a(n + 1);
    int s = 0;
    for (int i = 1; i <= n; i++){
        cin>>a[i];
        if (a[i] == n){
            s = i;
        }
    }
    for (int i = 1; i < n; i++){
        int a, b; cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    vector<bool> used(n + 1);
    function<pii(int, int, int)> dfs = [&](int v, int d, int pr){
        int maxi = v, dist = d;
        for (int i: g[v]){
            if (used[i] || i == pr) continue;
            auto [mx, dd] = dfs(i, d + 1, v);
            if (mx > maxi){
                maxi = mx;
                dist = dd;
            }
        }
        pii ret = {maxi, dist};
        return ret;
    };
    function<ll(int)> f = [&](int v){
        used[v] = true;
        ll out = 0;
        for (int i: g[v]){
            if (used[i]) continue;
            auto [u, d] = dfs(i, 1, 0);
            out = max(out, d + f(u));
        }
        return out;
    };
    cout<<f(s)<<"\n";
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 2 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Incorrect 1 ms 4956 KB Output isn't correct
3 Halted 0 ms 0 KB -