Cod sursa(job #2209120)

Utilizator Silviu45Dinca Silviu Silviu45 Data 1 iunie 2018 19:29:24
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <cmath>
using namespace std;

bool cont(int i,int s[])
{
    for(int j=1; j<i; j++)
    {
        if(s[i]==s[j])//daca sunt pe aceeasi coloana
            return false;
    }
    for(int j=1; j<i; j++)
    {
        if(abs(i-j) == abs(s[i]-s[j]))//daca sunt pe aceeasi diagonala
            return false;
    }
    return true;
}

void afisare(int s[],int n)
{
    for(int j=1; j<=n; j++)
    {
        for(int k=1; k<=n; k++)
        {
            if(s[j]==k)
            {
                cout<<" R ";
            }
            else cout<<" x ";
        }
        cout<<endl;
    }
    cout<<endl;
    cout<<endl;
}


int main()
{
    int n;
    int s[100];
    cin>>n;
    s[1] = 0;
    int i = 1;

    while(i > 0)
    {
        s[i]++;
        if(s[i]<=n)
        {
            if(cont(i,s))
            {
                if(i==n)
                {
                    afisare(s,n);
                }
                else s[++i] = 0;
            }

        }
        else i--;
    }


    return 0;
}