Pagini recente » Cod sursa (job #837520) | Cod sursa (job #3132236) | Cod sursa (job #484370) | Cod sursa (job #1668591) | Cod sursa (job #369246)
Cod sursa(job #369246)
#include<stdio.h>
using namespace std;
#define dim 1005
#include<stdlib.h>
int n,k,v[dim],ev,as,mat[dim][dim],kk,a,b,m;
FILE *f=fopen("dusman.in","r"), *g=fopen("dusman.out","w");
void init()
{
v[k]=0;
}
int succesor()
{
v[k]=v[k]+1;
if(v[k]>n||mat[v[k]][v[k-1]]==1)
return 0;
else
return 1;
}
int valid()
{int i;
for(i=1;i<k;i++)
{
if(v[i]==v[k])
return 0;
}
return 1;
}
int solutie()
{
if(k==n) return 1;
else return 0;
}
void afisare()
{
int i;
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fprintf(g,"\n");
//cout<<v[i]<<" ";
// cout<<"\n";
fclose(f);
fclose(g);
exit(0);
}
void bt()
{
k=1; //pozitia in vector de la care pormin
init (); //initializeaza prima pozitie din vector
while (k>0)
{
as=1;
ev=0;
while(as&&!ev)
{
as=succesor();
if(as)
ev=valid();
}
if(as)
{
if(solutie())
afisare();
else
{ k++;
init(); }
}
else k--;
}
}
int main()
{
int i;
fscanf(f,"%d%d%d",&n,&kk,&m);
for(i=1;i<=m;i++)
{fscanf(f,"%d%d",&a,&b);
mat[a][b]=1;
mat[b][a]=1;
}
bt();
return 0;}