Pagini recente » Clasamentul arhivei Infoarena Monthly | Cod sursa (job #3228023) | Cod sursa (job #2668022) | Cod sursa (job #3248500) | Cod sursa (job #2209120)
#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;
}