Cod sursa(job #2479597)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 24 octombrie 2019 00:22:23
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<vector>
using namespace std;

ifstream fin("dusman.in");
ofstream fout("dusman.out");

int perm[1005], nodes[1005][1005], viz[1005];


void permutare(int poz, int k, int n, int &cnt)
{
	if(cnt > k)
	{
		return;
	}
	if(poz == n+1)
	{
		cnt++;
		if(k == cnt)
		{
			for(int i = 1; i <= n; i++)
			{
				fout << perm[i] << " ";
			}
		}
		return;
	}

	for(int i = 1; i <= n; i++)
	{
		if(!viz[i])
		{
			if(nodes[i][perm[poz-1]] == 0)
			{
				viz[i] = 1;
				perm[poz] = i;
				permutare(poz+1, k, n, cnt);
				viz[i] = 0;
			}
		}
	}
}


int main()
{
	int n, m, k;
	fin >> n >> k >> m;
	for(int i = 1; i <= m; i++)
	{
		int f1, f2;
		fin >> f1 >> f2;
		nodes[f1][f2] = 1;
		nodes[f2][f1] = 1;
	}

	int cnt = 0;
	permutare(1, k, n, cnt);
	fin.close();
	fout.close();
	return 0;
}