Cod sursa(job #3366275)
| Utilizator | Data | 30 septembrie 2026 12:16:41 | |
|---|---|---|---|
| Problema | Dusman | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.92 kb |
///sursa provizorie
#include <iostream>
using namespace std;
int n,ciclu,k,m,a,b;
int dusmani[1000][3];
int v[1000];
int verif(int pas){
if(pas>1){
for(int i=1;i<=3;i++){
if(v[pas-1]==dusmani[pas][i] ){
return 0;
}
}
}else{
return 1;
}
}
void backtrack(int pas){
if(pas==n+1){
ciclu++;
if(ciclu==k){
for(int i=1;i<=n;i++){
cout<<v[i]<<" ";
}
}
}else{
for(int i=1;i<=n;i++){
v[pas]=i;
if(verif(pas)==1){
backtrack(pas+1);
}
}
}
}
int main()
{
cin>>n>>k>>m;
for(int i=1;i<=m;i++){
cin>>a>>b;
dusmani[a][i]=b;
}
backtrack(1);
return 0;
}
