Cod sursa(job #115433)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 16 decembrie 2007 12:39:42
Problema Dusman Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasele 5-8 Marime 0.99 kb
#include<stdio.h>
#include<stdlib.h>
int n,i,m,nr,j,o,q,pwn,used[1000],st[1000],dusm[10000][3];
	void afisare()
		{
			int i,xyz=0;
			o=0;
			for(i=1;i<=n;i++)
				{
					for(j=1;j<=m;j++)
						if(dusm[j][1]==st[i])
							if(st[i-1]==dusm[j][2] || st[i+1]==dusm[j][2])
								{
									o=1;
									break;
								}
				}
			if(o==0)
				{
					q++;
					xyz=1;
				}
			if(q==nr && xyz==1)
				{
					pwn=1;
					for(i=1;i<=n;i++)
						printf("%d ",st[i]);
				}
		}
	void GenPerm(int k)
		{
			int c;
			if(k==n+1)
				{
					afisare();
					if(pwn==1) exit(0);
				}
				else
					{
						for(c=1;c<=n;c++)
							if(!used[c])
								{
									st[k]=c;
									used[c]=1;
									GenPerm(k+1);
									used[c]=0;
								}
					}
		}
int main()
{
	freopen("dusman.in","r",stdin);
	freopen("dusman.out","w",stdout);
	scanf("%d%d%d",&n,&nr,&m);
	for(i=1;i<=m;i++)
		for(j=1;j<=2;j++)
			scanf("%d",&dusm[i][j]);
	GenPerm(1);
	return 0;
}