Cod sursa(job #1340643)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 11 februarie 2015 22:37:37
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 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]; 

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
	{
		for(int i = 1; i<=n; i++)
		{
			if(dusmani[st[x - 1]][i]==0)
			{
				bool unic = 1;

				for(int j = x - 1; j>0; j--)
				{
					if(st[j]==i)
					{
						unic = 0;
						break;
					}
				}

				if(unic==1)
				{
					st[x] = i;
					back(x + 1);
				}
			}
		}
	}
}

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;
}