Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n,m;
- cin>>n>>m;
- set< int > graph[1001];
- for(int i=1; i<=m; i++)
- {
- int a,b;
- cin>>a>>b;
- graph[a].insert(b);
- graph[b].insert(a);
- }
- int MAX=0;
- int curr=0;
- bool flag=0;
- vector<int> final;
- for(int mask=0; mask<=(1<<n); mask++)
- {
- curr=0;
- flag=true;
- vector<int> taken;
- for(int i=1; i<=n; i++)
- {
- if(mask&(1<<i))
- {
- taken.push_back(i);
- }
- }
- for(int i=1; i<=taken.size(); i++)
- {
- for(int j=1; j<=taken.size(); j++)
- {
- if(i==j)continue;
- /*for(int k=0; k<graph[i].size();k++)
- {
- if(graph[i][k]==taken[j])
- }*/
- if(graph[i].count(taken[j])>0)
- {
- flag=false;
- break;
- }
- }
- if(flag)curr++;
- }
- int b=taken.size();
- if(flag)
- {
- if(b>final.size())
- final=taken;
- MAX=max(MAX,curr);
- }
- }
- for(int i=1; i<=final.size(); i++)
- {
- cout<<final[i]<<" ";
- }
- cout<<endl;
- cout<<MAX<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement