Cod sursa(job #25996)

Utilizator pustiuRadu Zaharia pustiu Data 4 martie 2007 17:41:06
Problema Oras Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream.h>
int N, sol[501], ok=0;
void citire ()
{
	ifstream f("oras.in");
   f>>N;
   f.close();
}

int valid (int x, int y)
{
	if (x==y)
   	return 0;
   for(int i=1;i<=y-1;i++)
   	if(x==sol[i])
      	return 0;
   return 1;
}

void afisare ()
{
	ofstream g("oras.out");
   for(int i=1;i<=N;i++)
   {
     	for (int j=1;j<=N;j++)
      	if (sol[i]==j)
         	g<<'1';
         else g<<'0';
      g<<'\n';
   }
   g.close();
}


void back(int k)
{
	if (k==N+1)
   {
   	ok=1;
   	afisare();
   }
   else
   {
   	if (!ok)
      {
      	for(int i=1;i<=N;i++)
         {
         	if (ok)
            	break;
         	if (valid(i,k))
            {
            	sol[k]=i;
               back(k+1);
            }
         }
      }
   }
}

int main ()
{

	citire ();
   back(1);
   afisare();
   return 0;

}