Cod sursa(job #1947532)

Utilizator patcasrarespatcas rares danut patcasrares Data 31 martie 2017 00:28:39
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.28 kb
#include<fstream>
#include<string.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,ma,rez,t,p,m,b;
char x[10][10],d;
int y[20][20];
int v[20];
void ve(int nr,int v[20],int i)
{ int d,j;
if(nr==n)
{rez++;
if(rez==1){
    for(j=1;j<=n;j++)
    fout<<v[j]<<' ';
    fout<<'\n';}
    return;
}


    for(j=1;j<=n;j++)
    if(y[i][j]==0)
  {
      y[i][j]++;
nr++;
v[nr]=j;

     for(d=1;d<=n;d++)
        {
            y[i][d]++;
            y[d][j]++;
        }

      int e=j;
      for(d=i+1;d<=n;d++)
      {
        e++;
          if(e<=n)
         y[d][e]++;
         else
            break;
      }
      e=j;
      for(d=i+1;d<=n;d++)
      {
        e--;
       if(e>=1)
         y[d][e]++;
         else break;
      }

      ve(nr,v,i+1);
      nr--;
      y[i][j]--;
     for(d=1;d<=n;d++)
        {
            y[i][d]--;
            y[d][j]--;
        }

       e=j;
      for(d=i+1;d<=n;d++)
      {
        e++;
          if(e<=n)
         y[d][e]--;
         else
            break;
      }
      e=j;
      for(d=i+1;d<=n;d++)
      {
        e--;
       if(e>=1)
         y[d][e]--;
         else break;
      }


  }

  }



int main()
{fin>>n;
ve(0,v,1);
fout<<rez;
}