Guest User

Uva 11906

a guest
Jan 18th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define mp make_pair
  3. #define pb push_back
  4. #define fi first
  5. #define se second
  6.  
  7. #define MOD 40000
  8. #define DOMOD(d) if ((d) >= MOD) d %= MOD;
  9. #define DONEGMOD(d) if ((d) < 0) d = ((d % MOD) + MOD) % MOD;
  10.  
  11. #define inp(a) scanf("%d", &a)
  12. #define inp2(a,b) scanf("%d %d", &a, &b)
  13. #define inp3(a,b,c) scanf("%d %d %d", &a, &b, &c)
  14. #define inp4(a,b,c,d) scanf("%d %d %d %d", &a, &b, &c, &d)
  15.  
  16. #define inpl(a) scanf("%lld", &a)
  17. #define inpl2(a,b) scanf("%lld %lld", &a, &b)
  18. #define inpl3(a,b,c) scanf("%lld %lld %lld", &a, &b, &c)
  19. #define inpl4(a,b,c,d) scanf("%lld %lld %lld %lld", &a, &b, &c, &d)
  20. #define all(v) (v).begin(), (v).end()
  21. #define rep(i,a,b) for (int i=a;i<b;i++)
  22. #define mset(a,val) memset(a,val,sizeof(a))
  23. #define printv(v) for (int i=0;i<(int) v.size(); i++) cout<<v[i]<<" "
  24. #define MAX 100005
  25. using namespace std ;
  26. typedef long long int ll ;
  27. typedef pair<int,int> pii ;
  28. typedef pair<long long , long long > pll ;
  29.  
  30.  
  31.  
  32. int main()
  33. {
  34.   #ifdef DHEER
  35.   freopen("inp.txt","r",stdin) ;
  36.   freopen("out.txt","w",stdout) ;
  37.   #endif
  38.   int n ;
  39.   while (1)
  40.   {
  41.       inp(n) ;
  42.       if (n==0) break ;
  43.       vector<int> v[n+1] ;
  44.       int color[n+1] ;
  45.       int x, y ;
  46.       while (1)
  47.       {
  48.           inp2(x,y) ;
  49.           if (x==0 && y==0) break ;
  50.           v[x].pb(y) ; v[y].pb(x) ;
  51.       }
  52.       for (int i=1;i<=n;i++) color[i] = -1 ;
  53.       queue<int> q ;
  54.       bool ans = true ;
  55.       int f ;
  56.       for (int i=i;i<=n;i++)
  57.       {
  58.           if (color[i] == -1)
  59.           {
  60.               q.push(i) ;
  61.               color[i] = 0 ;
  62.               while (!q.empty())
  63.               {
  64.                   f = q.front() ;
  65.                   q.pop() ;
  66.                   for (auto it : v[f])
  67.                   {
  68.                       if (color[it] == -1)
  69.                       {
  70.                           color[it] = 1 - color[f] ;
  71.                           q.push(it) ;
  72.                       }else if (color[it] == color[f]) {
  73.                           ans = false ; break ;
  74.                       }
  75.                   }
  76.                   if (!ans) break ;
  77.               }
  78.               if (!ans) break ;
  79.           }
  80.          
  81.       }
  82.       if (ans) cout<<"YES"<<endl ;
  83.       else cout<<"NO"<<endl ;
  84.      
  85.   }
  86.     return 0 ;
  87. }
Add Comment
Please, Sign In to add comment