Cod sursa(job #212493)

Utilizator dumyDumitrica Alin dumy Data 5 octombrie 2008 18:17:07
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<iostream.h>
#include<fstream.h>
int v[1000][3],x[1000],n,k,r,nr,m,i;
void tipar()
		 { int i=1;
			for(i=1;i<=n;i++)
					cout<<x[i]<<" ";
			cout<<endl;
		 }
int valid(int k)
			  { int i;
				 for(i=1;i<k;i++)
						 if(x[i]==x[k]) return 0;

				 for(i=1;i<=m;i++)
						 {if(v[i][1]==x[k]&&v[i][2]==x[k-1])  return 0;
						  if(v[i][2]==x[k]&&v[i][1]==x[k-1])  return 0;
						 }
				 return 1;


			  }
int sol(int k)
			  { if(k==n) return 1;
				 return 0;
			  }
void back()
			  {k=1; x[k]=0;
				while(k>0) if(x[k]<n)
									 {x[k]++;
									  if(valid(k))
												  if(sol(k)) {nr++; if(nr==r) {tipar();break;} }
														else {k++;
																x[k]=0;
																}
									  }
							  else k--;
				}
int main()
		{ifstream h("dusman.in");
		 h>>n>>r>>m;
		 for(i=1;i<=m;i++) h>>v[i][1]>>v[i][2];
		 back();
       return 0;

		}