Cod sursa(job #1876678)

Utilizator ArmaghedonDodon Aurel Armaghedon Data 12 februarie 2017 15:37:46
Problema Dame Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <stdlib.h>
using namespace std;

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

int n;
vector<int> t; //solutiile;

bool valid(int k)
{
    for (int i=1;i<k;i++)
    {
        if(t[i]==t[k] || abs(t[k]-t[i])==(k-i)) return false;
    }
    return true;
}

bool solutie(int k)
{
    if (k==n) return true;
    return false;
}

void afisare()
{
    cout<<n<<'\n';
    for (int i=1;i<=n;i++)
    {
        cout<<i<<' '<<t[i]<<'\n';
    }
    exit(0);
}

void BK(int k)
{
    for (int i=1;i<=n;i++)
    {
        t[k]=i;
        if (valid(k))
        {
            if (solutie(k)) afisare();
                else BK(k+1);
        }
    }
}

main()
{
    in>>n;
    t.resize(n+1);
    t[n]=0;
    BK(1);
    out<<'\n'<<l;
}