fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3. int a[101][101],used [101];
  4. int n, cnt=0;
  5. string ans="YES";
  6. void dfs (int v, int color){
  7. used [v]=1;
  8. cnt++;
  9. for (int i=0; i<n; i++){
  10. if(a[v][i]==1 && used[i] ==0)
  11. dfs (i, 3-color);
  12. else if(a[v][i]==1 && used[i]==color)
  13. ans="NO";
  14. }
  15. }
  16. int main(){
  17. int m;
  18. cin>>n>>m;
  19. for (int i=0; i<m; i++){
  20. int f,e;
  21. cin>>f>>e;
  22. a[f-1][e-1]=1;
  23. a[e-1][f-1]=1;
  24. }
  25. for(int i=0;i<n; i++){
  26. if(used[i]==0){
  27. dfs(i,1);
  28. }
  29. }
  30. cout<<ans<<endl;
  31. if(ans=="YES")
  32. for(int i=0; i<n; i++)
  33. if(used[i]==1 )
  34. cout<<i+1<<" ";
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5284KB
stdin
3 2
1 2
1 3
stdout
YES
1 2 3