Cod sursa(job #2557254)

Utilizator Codrut112Codrut Copas Codrut112 Data 25 februarie 2020 17:58:25
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int nr,n,mat[100][100];
bool ok(int x,int y)
{
    int j;
    int i;
    for( i=1; i<=n; i++)if(mat[x][i]==1 or mat[i][y]==1)return 0;
    i=x;
    j=y;
    while(i>0 and j>0)
    {
        i--;
        j--;
        if(mat[i][j]==1)return 0;
    }
    i=x;
    j=y;
    while(i<=n and j<=n)
    {
        i++;
        j++;
        if(mat[i][j]==1)return 0;
    }
    i=x;
    j=y;
    while(i<=n and j>0)
    {
        i++;
        j--;
        if(mat[i][j]==1)return 0;
    }
    i=x;
    j=y;
    while(i>0 and j<=n)
    {
        i--;
        j++;
        if(mat[i][j]==1)return 0;
    }
    return 1;

}
void dame(int i)
{int j;
    if(i<=n)
        for(j=1; j<=n; j++)
        {
            if(ok(i,j))
            {
                mat[i][j]=1;
                dame(i+1);
                mat[i][j]=0;
            }
        }
        else {nr++;if(nr==1){
          for(int e=1;e<=n;e++)
          for(int l=1;l<=n;l++)if(mat[e][l]==1)g<<l<<" ";
g<<'\n';
        }
        }
}

int main()
{
    f>>n;
    dame(1);
    g<<nr;
}