Cod sursa(job #2206820)

Utilizator TudorCaloianCaloian Tudor-Ioan TudorCaloian Data 23 mai 2018 21:17:57
Problema Dame Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dame.in");
ofstream fout("dame.out");

int n, st[1001], fr[1001], diag1[100001], diag2[100001], nrsol;


void Afis()
{
    fout << n << '\n';
    for(int i = 1; i <= n; i++)
        fout << i << " " << st[i] << '\n';
}
void BT(int k)
{
    if(k == n+1)
    {
        nrsol++;
        if(nrsol == 1)
         {

             Afis();
         }
        return;
    }

    for(int i = 1; i <= n; i++)
    {
        st[k] = i;
        if(fr[i] == 0 && diag1[k-i+15] == 0 && diag2[k+i] == 0)
        {
            fr[i]++;
            diag1[k-i+15]++;
            diag2[k+i]++;
            BT(k+1);
            fr[i]--;
            diag1[k-i+15]--;
            diag2[k+i]--;
        }
    }


}

int main()
{
    fin >> n;
    BT(1);
    return 0;
}