v 0. Pasted by alias as cpp at 2013-11-14 22:35:04 MSK and set expiration to never.

Paste will expire never.

  1. #define _CRT_SECURE_NO_DEPRECATE
  2. #include <stdio.h>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <stdlib.h>
  6. #include <ctime>
  7. #include <set>
  8. #include <map>
  9. #include <queue>
  10. #include <string>
  11. #include <math.h>
  12. #include <queue>
  13. #include <memory.h>
  14. #include <iostream>
  15. #include <stack>
  16. #include <complex>
  17. #include <list>
  18. #include <bitset>
  19.  
  20. using namespace std;
  21.  
  22. void ASS(bool b)
  23. {
  24.     if (!b)
  25.     {
  26.         ++*(int*)0;
  27.     }
  28. }
  29.  
  30. #define FOR(i, x) for (int i = 0; i < (int)(x); i++)
  31. #define CL(x) memset(x, 0, sizeof(x))
  32. #define CLX(x, y) memset(x, y, sizeof(x))
  33.  
  34. #pragma comment(linker, "/STACK:106777216")
  35.  
  36. typedef vector<int> vi;
  37. typedef long long LL;
  38.  
  39. vi c;
  40. vector<vi> g;
  41.  
  42. int main() {
  43.     int n = (int)g.size();
  44.  
  45.     int nc = 0;
  46.     FOR(i, n)
  47.         nc = max(nc, c[i] + 1);
  48.  
  49.     vector<vi> vc(nc);
  50.     FOR(i, n)
  51.         vc[c[i]].push_back(i);
  52.  
  53.     vector<vi> gc(nc);
  54.  
  55.     vi f(nc, -1);
  56.  
  57.     FOR(i, nc) {
  58.         FOR(j, vc[i].size()) {
  59.             int x = vc[i][j];
  60.             FOR(k, g[x].size()) {
  61.                 int ii = c[g[x][k]];
  62.                 if (f[ii] != i) {
  63.                     f[ii] = i;
  64.                     gc[i].push_back(ii);
  65.                 }
  66.             }
  67.         }
  68.     }
  69.  
  70.     return 0;
  71. }


Editing is locked.