Cod sursa(job #1242618)

Utilizator turbowin120Amarandei-Stanescu Alexandru turbowin120 Data 14 octombrie 2014 19:39:09
Problema Copii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("copii.in");
ofstream out("copii.out");


int n,sol[30],cnt[30],cnt2,v[30][30],mat[100][100];
bool fol[30],vecin[30];
int liste[30][30];

void afisare(){
    for(int i=1;i<=n;i++)
    out<<sol[i]<<' ';
    out<<"\n";

}

void citire(){
    in>>n;
    cout<<n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
        in>>mat[i][j];
        if(mat[i][j]==1)
            liste[i][cnt[i]++]=j;

        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++)
            out<<mat[i][j];
            out<<endl;}


}


void bkt(int p,int ver,int urm){
    if(p-1==n&&ver<=0){
        cnt2++;

    }
    else
        for(int i=urm;i<=n;i++)
            if(!fol[i]){
                fol[i]=true;
                sol[p]=i;
                for(int j=1;j<=cnt[i];j++)
                ver--;
                bkt(p+1,ver,urm);
                fol[i]=false;
            }
}


int main()
{
    citire();
    bkt(1,n,1);
    out<<cnt2/2;
    return 0;
}