Cod sursa(job #3326805)

Utilizator lucian243Condrea Andrei Lucian lucian243 Data 30 noiembrie 2025 15:50:20
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>
using namespace std;
int n,d,rad,x,y,cnt;
vector<int> v[16005];
int vis[16005];
int sub[16005],sediu[16005];
int opus;
void dfs(int node)
{
    vis[node]=1;
    for(int i=0;i<v[node].size();i++)
    {
        int vecin=v[node][i];
        if(vis[vecin]==0)
        {
            vis[vecin]=1;
            dfs(vecin);
            sub[node]+=sub[vecin];
            opus=max(opus,sub[vecin]);
        }
    }
    sediu[node]=max(opus,n-sub[node]);

}
int main() {
    ifstream cin("sediu.in");
    ofstream cout("sediu.out");
	cin>>n;
    for(int i=1;i<n;i++)
    {
        cin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
        
        
    }
     for (int i = 1; i <= n; i++)
        sub[i] = 1;
    for(int i=1;i<=n;i++)
    {
        
        if(vis[i]==0)
            dfs(i);
    }
    int mini=1e9;
    for(int i=1;i<=n;i++)
        mini=min(mini,sediu[i]);
    for(int i=1;i<=n;i++)
        if(sediu[i]==mini)
            cnt++;
    cout<<mini<<' '<<cnt<<'\n';
    for(int i=1;i<=n;i++)
        if(sediu[i]==mini)
        cout<<i<<' ';
        
        
        

}