Advertisement
ipilot

E

Oct 28th, 2012
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.49 KB | None | 0 0
  1. vector <int> gr[20100];
  2. bool used[20100];
  3. int CC[20100], ans;
  4.  
  5. void dfs(int v)
  6. {
  7.     int i, l;
  8.     used[v]=true;
  9.     CC[v]=ans+1;
  10.     l=sz(gr[v]);
  11.     for (i=0; i < l; i++)
  12.         if (!used[gr[v][i]]) dfs(gr[v][i]);
  13. }
  14.  
  15. int main()
  16. {
  17.     prepare("");
  18.     int n, m, i, u, v;
  19.     cin >> n >> m;
  20.     forn(i, m)
  21.     {
  22.         cin >> u >> v;
  23.         gr[u-1].pb(v-1);
  24.         gr[v-1].pb(u-1);
  25.     }
  26.     for (i=0; i < n; i++)
  27.     {
  28.         if (!used[i])
  29.         {
  30.             dfs(i);
  31.             ans++;
  32.         }
  33.     }
  34.     cout << ans << endl << CC[0];
  35.     for (i = 1; i < n; i++) cout << " " << CC[i];
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement