Cod sursa(job #1100684)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 7 februarie 2014 12:20:31
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, x[20], v[20][20], nr;

void afisare(){
    for(int i=1; i<=n; i++)
        g<<x[i]<<' ';
    g<<"\n";
}

void back(int k){
    if(k==n+1)
    {
        if(nr==0)
            afisare();
        nr++;
    }
    else
    {
        for(int i=1; i<=n; i++)
            if(v[k][i]==0)
            {
                x[k]=i;
                for(int j=k+1, p=1; j<=n; j++, p++)
                {
                    v[j][i]++;
                    if(i+p<=n)
                        v[j][i+p]++;
                    if(i-p>0)
                        v[j][i-p]++;
                }
                back(k+1);
                for(int j=k+1, p=1; j<=n; j++, p++)
                {
                    v[j][i]--;
                    if(i+p<=n)
                        v[j][i+p]--;
                    if(i-p>0)
                        v[j][i-p]--;
                }
            }
    }
}

int main(){
    f>>n;
    back(1);
    g<<nr<<"\n";
    return 0;
}