Cod sursa(job #478140)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 17 august 2010 16:43:56
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream.h>
#include<iostream.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
int m,n,k,i,v[1001],a,b,s[1001],ok,gata,caut,j;
char d[1001][1001];
int main()
{
	f>>n>>k>>m;
	for(i=1;i<=m;i++)
		{f>>a>>b;
		d[a][b]=d[b][a]='1';}
	i=1; //g<<k<<'\n';
	while(k>0)
		{caut=1; ok=0;
		while(s[i]==0&&caut<=n)
			if(v[caut]==0&&d[caut][s[i-1]]!='1') {ok=1; v[caut]=1;s[i]=caut;}
				else caut++;
		if(ok==0) {i--; j=i; do {v[s[j]]=0; 
								s[j]=0; 
								j++;} while (v[s[j]]==1); 
					}
			else i++;
		if(i==n+1) {k--; if(k>0) {i=n-1; s[n-1]=s[n]=0;}}
		//cout<<"bucla\n";g<<k<<'\n';
		}
	for(i=1;i<=n;i++) g<<s[i]<<' ';
	g<<'\n';
	f.close(); g.close();
	return 0;
}