Submission #786016

# Submission time Handle Problem Language Result Execution time Memory
786016 2023-07-17T22:12:29 Z gagik_2007 Newspapers (CEOI21_newspapers) C++17
6 / 100
30 ms 7520 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define ff first
#define ss second

ll ttt;
const ll INF=1e18;
const ll MOD=1e9+7;
const ll N=300007;
ll n,m,k;
vector<ll>g[N];
ll sz[N];
bool used[N];
ll head[N];

void dfs(int v, int par=-1){
    // cout<<"YOO"<<endl;
    sz[v]=0;
    for(int to:g[v]){
        if(to!=par){
            dfs(to,v);
            sz[v]=max(sz[v],sz[to]+1);
        }
    }
}

bool is_tree(int c, int v, int par=-1){
    used[v]=true;
    head[v]=c;
    bool retval=true;
    for(int to:g[v]){
        if(to!=par){
            if(used[to])retval= false;
            else if(!is_tree(c,to,v))retval= false;
        }
    }
    return retval;
}

void construct(vector<int>& p, int v, int par=-1){
    // cout<<"CONSTRUCT: "<<v<<" "<<par<<endl;
    dfs(v);
    // cout<<"SZ: ";
    // for(int vv=1;vv<=n;vv++)cout<<sz[vv]<<" ";
    // cout<<endl;
    p.push_back(v);
    int u=-1;
    for(int to:g[v]){
        if(to!=par){
            if(sz[to]==1){
                p.push_back(to);
                p.push_back(v);
            }
            else if(sz[to]!=0) u=to;
        }
    }
    if(u!=-1)construct(p,u,v);
}

int find_leaf(int v, int par=-1){
    dfs(v);
    for(int to:g[v]){
        if(to!=par){
            if(sz[to]>=2){
                return find_leaf(to,v);
            }
        }
    }
    for(int to:g[v]){
        if(sz[to]==1)return to;
    }
    return v;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    // freopen("output.txt","w",stdout);
    // freopen("input.txt","r",stdin);
    cin>>n>>m;
    if(m!=n-1)cout<<"NO\n";
    for(int i=0;i<m;i++){
        int x,y;
        cin>>x>>y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    for(int v=1;v<=n;v++){
        if(!used[v]&&!is_tree(v,v)){
            cout<<"NO\n";
            return 0;
        }
    }
    for(int v=1;v<=n;v++){
        dfs(v);
        int cnt=0;
        for(int to:g[v]){
            cnt+=(sz[to]>=2);
        }
        if(cnt>2){
            cout<<"NO\n";
            return 0;
        }
    }
    cout<<"YES\n";
    vector<int>p;
    int leaf=find_leaf(1);
    // cout<<"leaf: "<<leaf<<endl;
    construct(p,leaf);
    int len=p.size();
    for(int i=len-1;i>=0;i--){
        p.push_back(p[i]);
    }
    cout<<p.size()<<endl;
    for(int x:p)cout<<x<<" ";
    cout<<endl;
}
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
2 Correct 3 ms 7380 KB Output is correct
3 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
4 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
5 Correct 3 ms 7380 KB Output is correct
6 Partially correct 4 ms 7252 KB Provide a successful but not optimal strategy.
7 Incorrect 4 ms 7252 KB Extra information in the output file
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
2 Correct 3 ms 7380 KB Output is correct
3 Correct 3 ms 7308 KB Output is correct
4 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
5 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
6 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
7 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
8 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
9 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
10 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
11 Partially correct 27 ms 7500 KB Provide a successful but not optimal strategy.
12 Partially correct 10 ms 7440 KB Provide a successful but not optimal strategy.
13 Partially correct 12 ms 7460 KB Provide a successful but not optimal strategy.
14 Partially correct 13 ms 7460 KB Provide a successful but not optimal strategy.
15 Partially correct 15 ms 7508 KB Provide a successful but not optimal strategy.
16 Partially correct 30 ms 7512 KB Provide a successful but not optimal strategy.
17 Partially correct 27 ms 7520 KB Provide a successful but not optimal strategy.
18 Partially correct 27 ms 7504 KB Provide a successful but not optimal strategy.
19 Partially correct 27 ms 7508 KB Provide a successful but not optimal strategy.
20 Partially correct 28 ms 7508 KB Provide a successful but not optimal strategy.
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
2 Correct 3 ms 7380 KB Output is correct
3 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
4 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
5 Correct 3 ms 7380 KB Output is correct
6 Partially correct 4 ms 7252 KB Provide a successful but not optimal strategy.
7 Incorrect 4 ms 7252 KB Extra information in the output file
8 Halted 0 ms 0 KB -