Cod sursa(job #122853)

Utilizator SofinetiSofineti Mihai Sofineti Data 13 ianuarie 2008 19:39:46
Problema Dame Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
//#include<iostream.h>
#include<math.h>
#include<stdio.h>
int d[1000],fr[1000],n;

void tip(int i){
    int l,c;
    printf("%ld",n);
    //cout<<n<<endl;
    for (l=1;l<=i;l++)
	printf("%ld %ld",l,d[l]);
	//cout<<l<<" "<<d[l]<<endl;

    n=-1;
    }
int valid(int i){
    int p;
    for(p=1;p<i;p++)
      {
      if(d[p]==d[i])return 0;
      if(abs(d[p]-d[i])==abs(p-i)) return 0;
      }
    return 1;
    }
void back(int i){
   int val;
   for(val=1;val<=n;val++)
   {
   d[i]=val;
   if(valid(i))
    if(i==n)tip(i);
     else back(i+1);
    }
    }
int main(){
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%ld",&n);
//cin>>n;
back(1);
return 0;
}