Pagini recente » Cod sursa (job #262588) | Cod sursa (job #3280875) | Cod sursa (job #3137575) | Cod sursa (job #1458969) | Cod sursa (job #617379)
Cod sursa(job #617379)
#include<fstream>
using namespace std;
short n,m,k,perm[1005];
bool D[1005][1005],uz[1005];
void Afisare()
{
short i;
ofstream fout("dusman.out");
for(i=1;i<=n;i++)
fout<<perm[i]<<' ';
fout<<"\n";
fout.close();
}
void Back(int pas)
{
if(k<0) //deja am gasit solutia si am afisat-o
return;
if(pas==n) //am mai gasit o permutare
{
k--;
if(k==0) //am gasit solutia si o afisez
{
Afisare();
return;
}
}
else
{
short i;
for(i=1;i<=n;i++)
{
if(!uz[i] && !D[perm[pas]][i]) //nu a mai fost folosit si nu e dusman cu precedentul
{
perm[pas+1]=i;
uz[i]=true;
Back(pas+1);
uz[i]=false;
}
}
}
}
int main()
{
int i,x,y;
ifstream fin("dusman.in");
fin>>n>>k>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
D[x][y]=D[y][x]=true;
}
fin.close();
Back(0);
return 0;
}