Cod sursa(job #3144721)

Utilizator catalinmarincatalinmarin catalinmarin Data 10 august 2023 11:44:16
Problema Dusman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
using namespace std;
ifstream cin("dusman.in");
ofstream cout("dusman.out");
bool not_allowed[1001][1001];
bool used[1001];
int v[1001];
int asezari = 0;
int nr_dusmani, nr_asezare, nr_relatii;
void backtracking(int k){
    if (k == nr_dusmani + 1){
        asezari++;
        if (asezari == nr_asezare){
            for (int i = 1; i <= nr_dusmani; i++)
                cout << v[i] << " ";
        }
        return;
    }
    for (int i = 1; i <= nr_dusmani; i++){
        if (!used[i] && not_allowed[v[k-1]][i] == false){
            used[i] = true;
            v[k] = i;
            backtracking(k+1);
            used[i] = false;
        }
    }
}
int main(){
    cin >> nr_dusmani >> nr_asezare >> nr_relatii;
    for (int i = 1; i <= nr_relatii; i++){
        int nr1, nr2;
        cin >> nr1 >> nr2;
        not_allowed[nr1][nr2] = not_allowed[nr2][nr1] = true;
    }
    backtracking(1);
    return 0;
}