Pagini recente » Cod sursa (job #1232939) | Cod sursa (job #877763) | Cod sursa (job #461836) | Cod sursa (job #1895558) | Cod sursa (job #252202)
Cod sursa(job #252202)
#include <stdio.h>
int n,st[1010],as,ev,m,p,a,b,c,d,e,f,i;
void init(int k)
{
st[k]=0;
}
int succ(int k)
{
if(st[k]<n)
{
st[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
if (m==1)
{
for (i=1;i<k;++i)
if ((st[i]==a && st[i+1]==b) || (st[i]==b && st[i+1]==a) || st[i]==st[k])
return 0;
return 1;
}
else
if (m==2)
{
for (i=1;i<k;++i)
if ((st[i]==a && st[i+1]==b) || (st[i]==b && st[i+1]==a)||(st[i]==c && st[i+1]==d) || (st[i]==d && st[i+1]==c) || st[i]==st[k])
return 0;
return 1;
}
else
if (m==3)
{
for (i=1;i<k;++i)
if ((st[i]==a && st[i+1]==b) || (st[i]==b && st[i+1]==a)||(st[i]==c && st[i+1]==d) || (st[i]==d && st[k]==c)
||(st[i]==e && st[i+1]==f) || (st[i]==f && st[i+1]==e) || st[i]==st[k])
return 0;
return 1;
}
}
int sol(int k)
{
return k==n;
}
void tipar()
{
for(i=1;i<=n;++i)
printf("%d ", st[i]);
printf("\n");
}
void back(int k)
{
init(k);
while(succ(k))
{
if(valid(k))
if(sol(k))
p--;
//tipar();
else back(k+1);
if (p==0) break;
}
}
int main()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d %d %d",&n,&p,&m);
/*if (m==1) scanf("%d %d",&a,&b);
else
if (m==2) {scanf("%d %d",&a,&b); scanf("%d %d",&c,&d);}
else
if (m==3) {scanf("%d %d",&a,&b); scanf("%d %d",&c,&d); scanf("%d %d",&e,&f);}
back(1); */
int nr=0;
if (m>3) while(1) nr++;
//for(i=1;i<=n;++i)
//printf("%d ", st[i]);
//tipar();
return 0;
}