Pagini recente » Cod sursa (job #775551) | Cod sursa (job #1413522) | Cod sursa (job #2618359) | Cod sursa (job #1157260) | Cod sursa (job #787932)
Cod sursa(job #787932)
#include<fstream>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
#define NMAX_n 1000
#define NMAX_d 3000
int n = 0, K = 0, m = 0,x[NMAX_n + 1] = {0},ordine = 0;
short ok = 0;
struct dusmanii
{
int a;
int b;
}dusmani[NMAX_d + 1];
inline int conditie(int k)
{
for(int i = 1; i <= k; ++i)
{
if(i < k)
if(x[i] == x[k])return 0;
for(int j = 1; j <= m; ++j)
{
if(i < k)
if((x[i] == dusmani[j].a && x[i + 1] == dusmani[j].b) ||(x[i + 1] == dusmani[j].a && x[i] == dusmani[j].b)) return 0;
}
}
return 1;
}
void afiseaza()
{
for(int i = 1; i <= n; ++i)
g<<x[i]<<' ';
}
inline int back(int k)
{
if(k > n && conditie(k) == 1)ordine++;
else
{
for(int i = 1; i <= n; ++i)
{
x[k] = i;
if(conditie(k) == 1)
back(k + 1);
}
}
if(ok == 0)
if(ordine == K)
{
afiseaza();
ok = 1;
}
}
int main()
{
f>>n>>K>>m;
for(int i = 1; i <= m; ++i)
f>>dusmani[i].a>>dusmani[i].b;
f.close();
back(1);
g.close();
return 0;
}