Cod sursa(job #2660466)

Utilizator Ionut_neuer58Raducu Ioan Stefan Ionut_neuer58 Data 19 octombrie 2020 16:06:23
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int stck[1001];
int n, kp, m;
bool mat[1001][1001];
int rd1, rd2;
bool viz[1001];

void readit()
{
    in>>n>>kp>>m;
    while(m--) in>>rd1>>rd2, mat[rd1][rd2]=mat[rd2][rd1]=1;
}

void bk(int k)
{
    for(int i=1; i<=n && kp>0; i++)
    {
        while(i<=n && viz[i]) ++i;
        stck[k]=i;
        if((!k || !mat[stck[k]][stck[k-1]]) && k<n && !viz[i] && i<=n)
        {
            viz[i]=1;
            if(k==n-1) --kp;
            else bk(k+1);
            viz[i]=0;
        }
    }
}

int main()
{
    readit();
    bk(0);
    for(int i=0; i<n; i++) out<<stck[i]<<' ';
    return 0;
}