Cod sursa(job #2304884)

Utilizator YetoAdrian Tonica Yeto Data 18 decembrie 2018 19:09:08
Problema Dusman Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
using namespace std;
int n, kp, i, m, x, y, ok, cnt;
int a[1001][1001], v[1001], viz[1001];
ifstream fin ("dusman.in");
ofstream fout ("dusman.out");

void tipar (int k)
{
    int i=0;
    for (i=1;i<=k;i++) {
        fout<<v[i]<<" ";
    }
    fout<<"\n";
}

bool verif (int k)
{
    if (viz[v[k]]==1)
        return false;
    if (a[v[k]][v[k-1]]==1)
        return false;
    if (k<=n)
        return true;
    return false;
}

void back (int k)
{
    if (ok==1)
        return;
    int i=0;
    for (i=1;i<=n;i++) {
        v[k]=i;
        if (verif(k)) {
            viz[v[k]]=1;
            if (k==n) {
                cnt++;
                if (cnt==kp) {
                    tipar(k);
                    ok=1;
                }
            }
            back(k+1);
            viz[v[k]]=0;
        }
    }
}

int main () {
    fin>>n>>kp>>m;
    for (i=1;i<=n;i++) {
        fin>>x>>y;
        a[x][y]=1;
        a[y][x]=1;
    }
    back(1);
    return 0;
}