fork download
  1. #include<stdio.h>
  2. #include<queue>
  3. #include<iostream>
  4. using namespace std;
  5. typedef long long ll;
  6. vector<ll> ar[305];
  7. ll colour[305];
  8. queue<ll> q;
  9. int main()
  10. {
  11. ll t,v,c,i,a,b,p,count,j,g;
  12. ll n;
  13. while(scanf("%lld",&n) && n!=0)
  14. {
  15. p=1;
  16. for(i=0;i<305;i++)
  17. ar[i].clear();
  18. while(q.empty()==false)
  19. q.pop();
  20.  
  21. while(scanf("%lld%lld",&a,&b) && (a!=0 || b!=0))
  22. {
  23. ar[a].push_back(b);
  24. ar[b].push_back(a);
  25. }
  26. for(i=0;i<305;i++)
  27. colour[i]=3;
  28. colour[1]=1;
  29. q.push(1);
  30. while(q.empty()==false && p==1)
  31. {
  32. ll k=q.front();
  33. q.pop();
  34. for(j=0;j<ar[k].size();j++)
  35. {
  36. g=ar[k][j];
  37. if(colour[g]==3)
  38. {
  39. colour[g]=1-colour[k];
  40. q.push(g);
  41. }
  42. else if(colour[g]==colour[k])
  43. {
  44. p=2;
  45. break;
  46. }
  47. }
  48. }
  49. if(p==2)
  50. printf("NO\n");
  51. if(p==1)
  52. printf("YES\n",count);
  53. }
  54. return 0;
  55. }
  56.  
Runtime error #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Standard output is empty