Submission #1114617

#TimeUsernameProblemLanguageResultExecution timeMemory
1114617noyancanturkNewspapers (CEOI21_newspapers)C++17
8 / 100
2 ms504 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back using pii=pair<int,int>; signed main(){ int n,m; cin>>n>>m; if(n==1){ cout<<"YES\n1\n1"; return 0; } if(n==2){ cout<<"YES\n2\n1 1"; return 0; } if(m!=n-1){ cout<<"NO\n"; return 0; } vector<int>v[n+1]; for(int i=0;i<m;i++){ int x,y; cin>>x>>y; v[x].pb(y); v[y].pb(x); } int cnt=0; int cnts[n+1]{}; for(int i=1;i<=n;i++){ cnt+=1<v[i].size(); for(int j:v[i]){ if(1<v[j].size()){ cnts[i]++; } } } int lf=0; int guy=0; for(int i=1;i<=n;i++){ if(v[i].size()>1&&cnts[i]<=1)lf++; if(v[i].size()>1&&((!guy&&cnts[i]<=1)||(guy&&cnts[guy]>cnts[i]))){ guy=i; } } if(2<lf){ cout<<"NO\n"; return 0; } vector<int>chain; chain.pb(guy); while(1){ int past=-1; if(1<chain.size())past=chain[chain.size()-2]; int now=chain.back(); for(int j:v[now]){ if(j!=past&&v[j].size()>1){ chain.pb(j); break; } } if(chain.back()==now){ break; } } assert(chain.size()==cnt); cout<<"YES\n"<<chain.size()*2<<'\n'; for(int i=0;i<chain.size();i++){ cout<<chain[i]<<' '; } for(int i=chain.size()-1;0<=i;i--){ cout<<chain[i]<<' '; } }

Compilation message (stderr)

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from newspapers.cpp:1:
newspapers.cpp: In function 'int main()':
newspapers.cpp:67:22: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   67 |   assert(chain.size()==cnt);
      |          ~~~~~~~~~~~~^~~~~
newspapers.cpp:69:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |   for(int i=0;i<chain.size();i++){
      |               ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...