Mai intai trebuie sa te autentifici.
Cod sursa(job #3364988)
| Utilizator | Data | 15 septembrie 2026 10:30:35 | |
|---|---|---|---|
| Problema | Dusman | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.03 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,K,m,cnt=0,d[1005][5],st[1005];
bool fr[1005];
bool valid(int k)
{
if(fr[st[k]]==true) return 0;//l am mai pus
for(int i=1; i<=d[k][0]; i++)
{
if(st[k-1]==d[st[k]][i]) return 0;//e dusman
}
return 1;
}
void afis()
{
for(int i=1; i<=n; i++)
fout<<st[i]<<" ";
fout<<'\n';
}
void bk(int k)
{
for(int i=1; i<=n; i++)
{
st[k]=i;
if(valid(k))
{
fr[st[k]]=true;
if(k==n)
{
cnt++;
if(cnt==K)
{
afis();
exit(0);
}
}
else bk(k+1);
fr[st[k]]=false;
}
}
}
int main()
{
fin>>n>>K>>m;
int a,b;
for(int i=1; i<=m; i++)
{
fin>>a>>b;
d[a][++d[a][0]]=b;
d[b][++d[b][0]]=a;
}
bk(1);
return 0;
}
