Cod sursa(job #3325141)
| Utilizator | Data | 24 noiembrie 2025 20:43:26 | |
|---|---|---|---|
| Problema | Dusman | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.26 kb |
#include <fstream>
using namespace std;
ifstream cin("dusman.in");
ofstream cout("dusman.out");
int x[1001],n,F[1001],K,M,nr=0,a[1001][1001]={0};
void afis(int k)
{
for(int i=1;i<=n;i++)
cout<<x[i]<<" ";
cout<<"\n";
}
bool valid(int k)
{
if(k>1 && a[x[k-1]][x[k]]) return 0;
return 1;
}
bool solutie(int k)
{
return k==n;
}
void back(int k)
{
if(nr==K) return;
for(int i=1;i<=n;i++)
if(!F[i])
{
x[k]=i;
F[i]=1;
if(valid(k))
{
if(solutie(k))
{
nr++;
if (nr==K)
{
afis(k);
F[i]=0;
return;
}
}
else {
back(k+1);
if(nr==K)
{
F[i]=0;
return;
}
}
}
F[i]=0;
}
}
int main()
{
cin>>n>>K>>M;
for(int i=1;i<=M;i++)
{
int x,y;
cin>>x>>y;
a[x][y]=a[y][x]=1;
}
back(1);
return 0;
}
