Cod sursa(job #3162575)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 29 octombrie 2023 13:51:47
Problema Problema Damelor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <cmath>

#define DIM 13
using namespace std;

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

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


int v[DIM+5],u[DIM+5],n,sol = 0;

void backtrack(int pas){

    if(pas == n+1){

        for(int i=1;i<n;i++){
            for(int j=i+1;j<=n;j++){
                if(v[i]-v[j] == j-i || v[j]-v[i] == j-i){
                    return;
                }
            }
        }

        sol++;

        if(sol == 1){
            for(int i=1;i<=n;i++){
                g<<v[i]<<" ";
            }
            g<<"\n";
        }

        return;
    }


    for(int i=1;i<=n;i++){
        if(u[i]){
            continue;
        }

        v[pas] = i;
        u[i] = 1;
        backtrack(pas+1);
        u[i] = 0;
    }
}

int main()
{

    f>>n;
    backtrack(1);

    g<<sol;

    return 0;
}