Cod sursa(job #549607)

Utilizator ChallengeMurtaza Alexandru Challenge Data 8 martie 2011 20:01:09
Problema Dusman Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

const char InFile[]="dusman.in";
const char OutFile[]="dusman.out";
const int MaxN=1024;

ifstream fin(InFile);
ofstream fout(OutFile);

int N,M,K,x,y,A[MaxN][MaxN],sol[MaxN],used[MaxN];

void back(int k)
{
	if(!K)
	{
		return;
	}
	if(k>N)
	{
		--K;
		if(!K)
		{
			for(register int i=1;i<=N;++i)
			{
				fout<<sol[i]<<" ";
			}
		}
		return;
	}
	for(register int i=1;i<=N;++i)
	{
		if(A[i][sol[k-1]]==0)
		{
			if(used[i]==0)
			{
				used[i]=1;
				sol[k]=i;
				back(k+1);
				used[i]=0;
			}
		}
	}
}

int main()
{
	fin>>N>>K>>M;
	for(register int i=1;i<=M;++i)
	{
		fin>>x>>y;
		A[x][y]=1;
		A[y][x]=1;
	}
	fin.close();

	back(1);
	fout.close();
	return 0;
}