Cod sursa(job #399062)

Utilizator ioanaferyioana ferariu ioanafery Data 19 februarie 2010 20:03:21
Problema Dame Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<iostream.h>
#include<fstream.h>

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

int n,st[100],v[100][100];

void citire(){
	f>>n;
}
void afis(){
	g<<n<<endl;
	for(int i=1;i<=n;i++)
		g<<i<<" "<<st[i]<<endl;
}
void marcare(int x,int i, int j){
	int h;
	for(h=1;h<=n;h++){
		v[h][j]=x;
		v[i][h]=x;
	}
	for(h=1;h<=n-i;h++){
		v[i+h][j-h]=x;
		v[i+h][j+h]=x;
	}
	for(h=1;h<i;h++){
		v[i-h][j-h]=x;
		v[i-h][j+h]=x;
	}
}

void bkt(int i){
	if(i==n) afis();
	else{
		for(int j=1;j<=n;j++)
			if(v[i][j]==0){
				st[i]=j;
				marcare(1,i,j);
				bkt(i+1);
				marcare(0,i,j);
			}
	}
}
int main(){
	citire();
	bkt(1);
	f.close();
	g.close();
	}