Cod sursa(job #3366277)

Utilizator andreicapyCapitanescu Andrei andreicapy Data 30 septembrie 2026 12:20:37
Problema Dusman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
///sursa provizorie

#include <fstream>

using namespace std;

ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,ciclu,k,m,a,b;
int dusmani[1000][3];
int v[1000];

int verif2(int pas){
    for(int i=1;i<pas;i++){
        if(v[pas]==v[i]){
            return 0;
        }
    }
    return 1;
}

int verif(int pas){
        if(pas>1){
            for(int i=1;i<=3;i++){
                if(v[pas-1]==dusmani[pas][i]  ){
                    return 0;
                }
            }
            return 1;
        }else{
            return 1;
        }
}

void backtrack(int pas){
        if(pas==n+1){
            ciclu++;
            if(ciclu==k){
                for(int i=1;i<=n;i++){
                    fout<<v[i]<<" ";
                }

            }
        }else{
            for(int i=1;i<=n;i++){
                v[pas]=i;
                if(verif(pas)==1 && verif2(pas)==1){
                    backtrack(pas+1);
                }
            }
        }
}


int main()
{
    fin>>n>>k>>m;
    for(int i=1;i<=m;i++){
        fin>>a>>b;
        dusmani[a][i]=b;
    }
    backtrack(1);
    return 0;
}