Submission #984417

#TimeUsernameProblemLanguageResultExecution timeMemory
984417alexddNewspapers (CEOI21_newspapers)C++17
4 / 100
1 ms768 KiB
#include<iostream>
#include<vector>
using namespace std;
int n,m,root;
vector<int> con[1005];
bool isfrunza[1005];
bool rau;
void dfs(int nod, int par)
{
    int cntf=0,cntn=0;
    for(auto adj:con[nod])
    {
        if(adj!=par)
        {
            if(isfrunza[adj]) cntf++;
            else cntn++;
            dfs(adj,nod);
        }
    }
    if(cntn>1)
    {
        rau=1;
    }
}
signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m;
    int a,b;
    for(int i=1;i<=m;i++)
    {
        cin>>a>>b;
        con[a].push_back(b);
        con[b].push_back(a);
    }
    if(m!=n-1)
    {
        cout<<"NO\n";
        return 0;
    }
    if(n==1)
    {
        cout<<"YES\n";
        cout<<1<<"\n"<<1;
        return 0;
    }
    if(n==2)
    {
        cout<<"YES\n";
        cout<<2<<"\n"<<"2 2";
        return 0;
    }
    root=-1;
    for(int i=1;i<=n;i++)
    {
        if((int)con[i].size() > 1)
        {
            if(root==-1) root=i;
        }
        else
            isfrunza[i]=1;
    }
    dfs(root,0);
    if(rau)
    {
        cout<<"NO\n";
        return 0;
    }
    cout<<"YES\n";
    cout<<1<<"\n"<<1;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...