Submission #785764

# Submission time Handle Problem Language Result Execution time Memory
785764 2023-07-17T14:45:34 Z gagik_2007 Newspapers (CEOI21_newspapers) C++17
4 / 100
282 ms 524288 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;
            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;
    p.push_back(v);
    int u=-1;
    for(int to:g[v]){
        if(to!=par){
            if(sz[to]<2){
                p.push_back(to);
                p.push_back(v);
            }
            else u=to;
        }
    }
    if(u!=-1)construct(p,u,v);
}

int find_leaf(int v, int par=-1){
    for(int to:g[v]){
        if(to!=par){
            if(sz[to]>=2){
                return find_leaf(to,v);
            }
        }
    }
    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;
    for(int v=1;v<=n;v++){
        if(head[v]==v){
            int leaf=find_leaf(v);
            // cout<<"leaf: "<<leaf<<endl;
            construct(p,leaf);
        }
    }
    int len=p.size();
    if(p.size()%2==0){
        p.push_back(1);
    }
    for(int i=0;i<len;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 Partially correct 5 ms 7368 KB Provide a successful but not optimal strategy.
3 Partially correct 3 ms 7252 KB Failed to provide a successful strategy.
4 Partially correct 3 ms 7252 KB Failed to provide a successful strategy.
5 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
6 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
7 Runtime error 282 ms 524288 KB Execution killed with signal 9
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 4 ms 7380 KB Provide a successful but not optimal strategy.
2 Partially correct 3 ms 7424 KB Provide a successful but not optimal strategy.
3 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
4 Partially correct 3 ms 7380 KB Failed to provide a successful strategy.
5 Partially correct 4 ms 7380 KB Failed to provide a successful strategy.
6 Partially correct 3 ms 7368 KB Failed to provide a successful strategy.
7 Partially correct 3 ms 7380 KB Failed to provide a successful strategy.
8 Partially correct 4 ms 7368 KB Failed to provide a successful strategy.
9 Partially correct 4 ms 7380 KB Failed to provide a successful strategy.
10 Partially correct 3 ms 7380 KB Failed to provide a successful strategy.
11 Partially correct 11 ms 7508 KB Failed to provide a successful strategy.
12 Partially correct 6 ms 7380 KB Failed to provide a successful strategy.
13 Partially correct 7 ms 7372 KB Failed to provide a successful strategy.
14 Partially correct 7 ms 7380 KB Failed to provide a successful strategy.
15 Partially correct 7 ms 7380 KB Failed to provide a successful strategy.
16 Partially correct 11 ms 7432 KB Failed to provide a successful strategy.
17 Partially correct 12 ms 7512 KB Failed to provide a successful strategy.
18 Partially correct 11 ms 7508 KB Failed to provide a successful strategy.
19 Partially correct 13 ms 7472 KB Failed to provide a successful strategy.
20 Partially correct 12 ms 7516 KB Failed to provide a successful strategy.
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
2 Partially correct 5 ms 7368 KB Provide a successful but not optimal strategy.
3 Partially correct 3 ms 7252 KB Failed to provide a successful strategy.
4 Partially correct 3 ms 7252 KB Failed to provide a successful strategy.
5 Partially correct 3 ms 7380 KB Provide a successful but not optimal strategy.
6 Partially correct 3 ms 7252 KB Provide a successful but not optimal strategy.
7 Runtime error 282 ms 524288 KB Execution killed with signal 9
8 Halted 0 ms 0 KB -