Cod sursa(job #1359816)

Utilizator TibixbAndrei Tiberiu Tibixb Data 25 februarie 2015 08:20:49
Problema Copii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
using namespace std;
char ch[103];
int n, m[103], i, j, x[103], y[103], nrx, nry, ok, sol, p[103][103];
void back(int k){
   if(k==n+1)
      return ;
   int i, j, q;
   nrx=0;
   nry=0;
   for(i=k; i<=n; i++){
      m[i]=1;
      for(j=1; j<=n; j++)
         if(m[j]==1)
            x[++nrx]=j;
         else
            y[++nry]=j;
      ok=0;
      for(j=1; j<=nrx; j++)
         for(q=1; q<=nry; q++)
            if(((m[j]==1 && m[q]==0) || (m[j]==0 && m[q]==1)) && p[j][q]==1){
               ok=1;
               break;
            }
      if(ok)
         sol++;
      back(k+1);
      m[i]=0;
   }
}
ifstream in("copii.in");
ofstream out("copii.out");
int main(){
   in>>n;
   for(i=1; i<=n; i++){
      in>>ch+1;
      for(j=1; j<=n; j++)
         if(ch[j]=='1')
            p[i][j]=1;
   }
   back(1);
   out<<sol;
return 0;
}