Submission #1143259

#TimeUsernameProblemLanguageResultExecution timeMemory
1143259hhvbTriumphal arch (POI13_luk)C++20
0 / 100
160 ms18988 KiB
#include <bits/stdc++.h>

using namespace std;

queue<int> q;
int dist[300001], h[300001];
bool used[300001];
vector<int> adj[300001];

int main()
{
    int n, i, u, v;
    cin >> n;
    for ( i= 0; i < n - 1; i ++ ) {
        cin >> u >> v;
        adj[u].push_back( v );
        adj[v].push_back( u );
    }

    q.push( 1 );
    used[1] = true;
    while ( !q.empty() ) {
        u = q.front();
        for ( i = 0; i < adj[u].size(); i ++ ) {
            if ( used[ adj[u][i] ] == false ) {
                q.push( adj[u][i] );
                dist[ adj[u][i] ] = dist[u] + 1;
                used[adj[u][i]] = true;
            }
        }
        q.pop();
    }

    for ( i = 1; i <= n; i ++ ) {
        h[dist[i]] ++;
    }

    int ans = 0, mx, s = 0;
    i = 1;
    while ( h[i] != 0 ) {
        s += h[i];
        mx = ( s + i - 1 ) / i;
        ans = max( mx, ans );
        i ++;
    }

    cout << ans << "\n";

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...