Cod sursa(job #2311920)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 3 ianuarie 2019 20:47:58
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;

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

static const int NMAX = 1e3 + 5;

int n,p,m,ct;
int v[NMAX];
int dus[NMAX][NMAX];
bool fv[1001];

void ReadInput()
{
    fin >> n >> p >> m;
    int a ,b;
    for(int i = 1; i<= m; ++i)
    {
        fin >> a >> b;
        dus[a][b] = 1;
        dus[b][a] = 1;
    }
}

void PrintSolution()
{
    for(int i =1; i<=n ;++i)
        fout << v[i] << " ";
    fout << endl;
}

void Backtrack(int k)
{
    for(int x = 1; x <= n; ++x)
    {
        if(dus[v[k-1]][x] == 0 && x != v[k-1] && fv[x] == false)
        {
            fv[x] = true;
            v[k] = x;
            if(k == n){
                ct++;
                if(ct == p){
                    PrintSolution();
                    exit(0);
                }
            }
            Backtrack(k+1);
            fv[x] = false;
        }
    }
}

int main()
{
    ReadInput();
    Backtrack(1);

    return 0;
}