Cod sursa(job #1411502)

Utilizator vladbatalanBatalan Vlad vladbatalan Data 31 martie 2015 19:05:55
Problema Dame Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream fin("dame.in");
ofstream fout("dame.out");
int n,ov[1002],d1[2100],d2[2100],dame[1002],a,i,BK;
int backtr(int nrD,int poz)
{
    if(nrD>n)
        return 0;
    if(poz>n)
    {
        ov[dame[nrD-1]]=d1[2*n-(nrD+dame[nrD-1]-2)]=d2[n-(nrD-dame[nrD-1]-1)]=0;
        return backtr(nrD-1,dame[nrD-1]+1);
    }
    else
    {
        if(ov[poz]==0 && d1[2*n-(nrD+poz-1)]==0 && d2[n-(nrD-poz)]==0)
        {
            dame[nrD]=poz;
            ov[poz]=d1[2*n-(nrD+poz-1)]=d2[n-(nrD-poz)]=1;
            return backtr(nrD+1,1);
        }
        else
            return backtr(nrD,poz+1);
    }
}
int main()
{
    fin>>n;
    fout<<n<<'\n';
    a=backtr(1,1);
    for(i=1;i<=n;i++)
        fout<<i<<' '<<dame[i]<<'\n';
    return 0;
}