Pagini recente » Cod sursa (job #1676533) | Cod sursa (job #2855368) | Cod sursa (job #1788995) | Cod sursa (job #2742967) | Cod sursa (job #130633)
Cod sursa(job #130633)
#include <stdio.h>
FILE *in,*o;
int p,m,i,j,n,k;
int st[1000],a[1001][4];
int amsol(int p)
{
int i,f=0;
for (i=1;i<p && f==0;i++)
if (st[i]==st[p])
f=1;
if (f==1)
return 1;
else return 0;
}
int valid(int p)
{
int i=1,f=0;
while (a[p][i]!=0 && f==0)
{
if (st[p-1]==a[st[p]][i] || st[p+1]==a[st[p]][i])
f=1;
i++;
}
if (f==0)
return 0;
else return 1;
}
int main()
{
in=fopen("dusman.in","r");
o=fopen("dusman.out","w");
fscanf(in,"%d%d%d",&n,&k,&m);
for(i=1;i<=m;i++)
{
fscanf(in,"%d",&j);
p=1;
while (a[j][p]!=0)
p++;
fscanf(in,"%d",&a[j][p]);
p=1;
while (a[a[j][p]][p]!=0)
p++;
a[a[j][p]][p]=j;
}
i=0;
p=1;
st[p]=1;
while (i<=k)
{
if (amsol(p)==0 && valid(p)==0 && p<n)
{
p++;
st[p]=1;
}
else if (p<=n && st[p]<n)
{
st[p]++;
if (valid(p)==0 && amsol(p)==0 && p==n)
i++;
}
else {
if (valid(p)==0 && amsol(p)==0)
i++;
p--;
while (st[p]==n)
p--;
st[p]++;
}
}
for (i=1;i<=n;i++)
fprintf(o,"%d ",st[i]);
fclose(in);
fclose(o);
return 0;
}