Cod sursa(job #1340652)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 11 februarie 2015 22:41:31
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("dusman.in");
ofstream out("dusman.out");

const int nmax = 1006;
int n, k, st[nmax], m, nr;
bool dusmani[nmax][nmax], poz[nmax]; 

void back(int x)
{
	if(x==n + 1)
	{
		nr++;

		if(nr==k)
		{
			for(int i = 1; i<=n; i++)
				out<<st[i]<<' ';
			out<<'\n';
		}
	}
	else if(nr<k)
	{
		for(int i = 1; i<=n; i++)
		{
			if(dusmani[st[x - 1]][i]==0)
			{
				if(poz[i]==0)
				{
					st[x] = i;

					poz[i] = 1;
					back(x + 1);
					poz[i] = 0;
				}
			}
		}
	}
}

int main(){
	int player_unu=0;

	in>>n>>k>>m;
	for(int i = 1; i<=m; i++)
	{
		int x, y;
		in>>x>>y;

		dusmani[x][y] = 1;
		dusmani[y][x] = 1;
	}

	back(1);

	return player_unu;
}