Pagini recente » Cod sursa (job #1835293) | Cod sursa (job #587305) | Cod sursa (job #2975040) | Cod sursa (job #899520) | Cod sursa (job #408258)
Cod sursa(job #408258)
#include <fstream>
std::ifstream in("dusman.in");
std::ofstream out("dusman.out");
int perm,n,d1[1000],d2[1000],p,x[1000];
void scrie()
{
int i;
for(i=1;i<=n;i++)
out<<x[i]<<" ";
out<<'\n';
}
bool verifica(int k)
{
int i,j;
for(i=0;i<p;i++)
if(d1[i]==x[k])
if(d2[i]==x[k-1])
return false;
else;
else
if(d2[i]==x[k])
if(d1[i]==x[k-1])
return false;
for(i=1;i<k;i++)
for(j=i+1;j<=k;j++)
if(x[i]==x[j])
return false;
return true;
}
void back()
{
int k=1;
x[k]=0;
do
{
//out<<k<<'\n';
if(x[k]<n)
{
x[k]++;
if(verifica(k))
{
if(k==n)
{
//scrie();
if(perm==1)
{
scrie();
return ;
}
else
perm--;
}
else
{
k++;
x[k]=0;
}
}
}
else
k--;
}
while(k>0);
}
int main ()
{
int i;
in>>n>>perm>>p;
for(i=0;i<p;i++)
in>>d1[i]>>d2[i];
back();
//scrie();
return 0;
}