Pagini recente » Cod sursa (job #1875387) | Cod sursa (job #1875532) | Cod sursa (job #132728) | Cod sursa (job #1170009) | Cod sursa (job #2479106)
#include <iostream>
#include <math.h>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("maxsubsum.in");
ofstream fout("submultimi.out");
int N,M,K;
map < int , vector<int> > hate;
int perm[1010],viz[1010],contor;
void afisare(int n)
{
int i,ok=0;
for(i=1;i<=n;i++)
{
cout<<perm[i]<<" ";
}
fout<<"\n";
}/*
bool verificare_no_hate(int n)
{
int i;
for(i=1;i<=n-1;i++)
{
if(hate[{perm[i],perm[i+1]}]==true)
return false;
}
return true;
}*/
bool verificare(int a,int b)
{
int i;
for(i=0;i<hate[a].size();i++)
{
if(hate[a][i]==b)
{cout<<1;
return false;}
}
return true;
}
void bkt(int k,int n)
{
if(k==n+1)
{
// if(verificare_hate(n)==true)
// {
if(contor==K)
{
afisare(n);
return;
//goto eti;
}
//}
return;
}
else
{
int i;
for(i=1;i<=n;i++)
{
if((viz[i]==0) && ( verificare(k,i)==false) )
{
viz[i]=1;
perm[k]=i;
// k++;
if(k==n+1){ contor++;}
bkt(k+1,n);
// k--;
viz[i]=0;//undo
//perm[k]=0;//undo
}
}
}
}
int main()
{
int i,j;
fin>>N>>K>>M;
for(i=1;i<=M;i++)
{
int a,b;
fin>>a>>b;
hate[a].push_back(b);
hate[b].push_back(a);
}
for(i=1;i<=N;i++)
{
for(j=0;j<hate[i].size();j++)
{
cout<<hate[i][j]<<" ";
}
// cout<<"\n";
}
bkt(1,N);
return 0;
}