Cod sursa(job #2912108)

Utilizator euyoTukanul euyo Data 6 iulie 2022 20:14:47
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

const int MAXN = 1005;

int n, k, m;
int use[MAXN];
int v[MAXN], q;
int t[MAXN][MAXN];

bool perm( int pos ) {
  if ( pos == n + 1 ) {
	++q;
	if ( q == k ) {
	  for ( int i = 1; i <= n; ++i ) {
		fout << v[i] << " ";
	  }
	  return true;
	}
	return false;
  }
  for ( int i = 1; i <= n; ++i ) {
	if ( !t[i][v[pos - 1]] && !use[i] ) {
	  use[i] = true;
	  v[pos] = i;
	  if ( perm(pos + 1) ) return true;
	  use[i] = false;
	}
  }
  return false;
}

int main() {  
  int x, y;
  fin >> n >> k >> m;
  while ( m-- ) {
    fin >> x >> y;	
    t[x][y] = t[y][x] = true;
  }
  perm(1);
  fin.close();
  fout.close();
  return 0;
}