Hezov

Admitere P3 iasi 2024

Jul 10th, 2025
815
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. using namespace std;
  5. const int mxN = 1e3;
  6. int adj[mxN][mxN];
  7. int col[mxN], usedCol[mxN], visited[mxN];
  8. int n , m , k;
  9. void DFS(int node)
  10. {
  11.     visited[node] = true;
  12.     // Determinam culoarea :
  13.     int culoare = -1;
  14.     for(int i = 0;i<n;i++)
  15.         if(adj[node][i])
  16.             usedCol[col[i]] = true;
  17.     for(int i = 1;i <= n - k;i++)
  18.         if(usedCol[i] == false)
  19.         {
  20.            culoare = i;
  21.            break;
  22.         }
  23.     col[node] = culoare;
  24.     // Resetam tabloul de culori folosite.
  25.     for(int i = 1;i<= n - k;i++)
  26.         usedCol[i] = false;
  27.     // Facem DFS in vecinii nevizitati
  28.     for(int i = 0;i<n;i++)
  29.         if(adj[node][i] && !visited[i])
  30.             DFS(i);
  31.  
  32. }
  33. int main()
  34. {
  35.     cin >> n >> m >> k;
  36.     for(int i = 1;i<=m;i++)
  37.     {
  38.         int a, b;
  39.         cin >> a >> b;
  40.         adj[a][b] = adj[b][a] = 1;
  41.     }
  42.     // Obtinem complementul grafului
  43.     for(int i = 0;i<n;i++)
  44.         for(int j = 0;j<n;j++)
  45.             if(i!=j)
  46.                 adj[i][j] = 1 - adj[i][j];
  47.     for(int i = 0;i<n;i++)
  48.         if(!visited[i])
  49.             DFS(i);
  50.     for(int i = 1;i<=n-k;i++)
  51.     {
  52.         int cnt = 0;
  53.         for(int it = 0;it<n;it++)
  54.             if(col[it] == i)
  55.                 cnt++, cout << it << ' ';
  56.         if(cnt > 0) cout << '\n';
  57.     }
  58.     return 0;
  59. }
  60. /*
  61. In input se presupune indexarea nodurilor de la 0.
  62. Daca nu este asa, se poate face a--, b-- cand se citesc muchiile.
  63. 6 6 2
  64. 0 1
  65. 0 2
  66. 1 2
  67. 3 4
  68. 3 5
  69. 4 5
  70. */
Advertisement
Add Comment
Please, Sign In to add comment