Cod sursa(job #531126)

Utilizator nautilusCohal Alexandru nautilus Data 8 februarie 2011 22:32:41
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#define dmax 1010
using namespace std;

int n,k,m;
bool a[dmax][dmax],v[dmax];
int sol[dmax],ok,nr;


void citire()
{
 int i,x,y;
	
 ifstream fin("dusman.in");
 
 fin>>n>>k>>m;
 for (i=1; i<=m; i++)
	 {
	  fin>>x>>y;
	  a[x][y] = a[y][x] = 1;
	 }
	
 fin.close();
}


void afisare()
{
 int i;
	
 ofstream fout("dusman.out");
 
 for (i=1; i<=n; i++)
	 fout<<sol[i]<<" ";
 
 fout.close();
}


void generare(int p)
{
 int i;
	
 if (p == n+1) /*daca am mai gasit o configuratie*/
	 {
	  nr++;
	  if (nr == k) /*daca am ajuns la a k-a configuratie*/
		  {
		   afisare();
		   ok = 1;
		  }
	 } else
	 for (i=1; i<=n; i++)
		 if (ok == 0 && v[i] == 0 && a[sol[p-1]][i] == 0)
			 {
			  v[i] = 1;
			  sol[p] = i;
			  
			  generare(p+1);
			  
			  v[i] = 0;
			 }
}


int main()
{
	
 citire();
 generare(1);
	
 return 0;
}