Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. string bin(unsigned int n)
  6. {
  7.     string result;
  8.     do
  9.     {
  10.         char c = '0' + n % 2;
  11.         result = c + result;
  12.         n = n / 2;
  13.     } while (n > 0);
  14.     return result;
  15. }
  16.  
  17. int main()
  18. {
  19.     int n, m, ansN = -1;
  20.     string ans;
  21.     cin>>n>>m;
  22.     vector<vector<int> > a(n, vector<int> (n, 0));
  23.     for(int i = 0; i < m; ++i){
  24.         int p1, p2;
  25.         cin>>p1>>p2;
  26.         a[p1-1][p2-1] = 1;
  27.         a[p2-1][p1-1] = 1;
  28.     }
  29.     for(int i = 0; i < n; ++i){
  30.         int d = n - i - 1;
  31.         long long iter = 0;
  32.         for(int j = 0; j < d; ++j)
  33.             iter += pow(2,j);
  34.         for(int j = iter;j >= 1; --j){
  35.             string perm = bin(j);
  36.             string add = "";
  37.             for(int z = 0; z < d - perm.size(); z++)add+='0';
  38.             for(int z = 0; z < n - d; z++)add+='0';
  39.             perm = add + perm;
  40.  
  41.             bool flag = true, flag2 = true;
  42.             for(int k = 0; k < perm.size(); ++k)
  43.                 if(perm[k] == '1' && !a[i][k]) flag = false;
  44.  
  45.             if(flag)
  46.                 for(int k = 0; k < perm.size(); ++k)
  47.                     if(perm[k] == '1' && flag2){
  48.                         for(int q = 0; q < n; ++q)
  49.                                 if(k != q && perm[q] == '1' && a[q][k] != 1) {flag2 = false;}
  50.                     }
  51.             if(flag2 && flag){
  52.                 int tmp = 0;
  53.                 for(int z = 0; z < perm.size(); z++) if(perm[z]=='1') tmp++;
  54.                 if(tmp > ansN) {ansN = tmp; perm[i] = '1'; ans = perm;}
  55.                 break;
  56.             }
  57.         }
  58.     }
  59.     for(int i = 0; i < ans.size(); i++)
  60.         if(ans[i] == '1') cout<<i+1<<" ";
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement