Cod sursa(job #444120)

Utilizator wamfeverDobos Ionut wamfever Data 19 aprilie 2010 14:57:38
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include<fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
ofstream g("auxfile.out");
ifstream f("auxfile.out");
ifstream in("auxx.txt");
ofstream out("auxx.txt");
int nr, n, v[15], i, m, j, d;
long long k, sum, sumaux;
int a[17][17];
  
void generate_subs()
{  for(i=1;i<=n+m;i++) v[i]=i;
   for(int p=2; p <= ( 1<<(n+m) ); p++) { k++;
                                          j=k;
                                          for(i=1;i<=n;i++) { if(j&1)g<<v[i]<<' ';
                                                              j>>=1;
                                                             }
                                          g<<'\n';
                                          }                                        
}

void sum_it()
{    for(i=1;i<=n;i++)
     for(j=1;j<=n;j++)
     sumaux+=a[i][j];
}

void read()
{
     fin>>n>>m;
     for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
     fin>>a[i][j];
}

void comute_line(int i)
{
     for(j=1;j<=m;j++) a[i][j]=a[i][j]-a[i][j]-a[i][j];
}

void comute_column(int j)
{
     for(i=1;i<=n;i++) a[i][j]=a[i][j]-a[i][j]-a[i][j];
}

void closef()
{    
     fin.close();
     fout.close();
}

void solve()
{    char p[100];
     generate_subs();
     read();
     sum = 0;
     sumaux = 0;
     nr = 0;
     sum_it();
     sum=sumaux;
     while( !f.eof() )
     {
            f.getline(p, 100);
            for(i=0; i<strlen(p); i++)  if( p[i] == ' ' )nr++;
            nr++;
            out<<p;
            for(i=1;i<=nr;i++)
            {
                              in>>d;
                              if(d>n) comute_column(d-n);
                              else comute_line(d);
                              }
            sum_it();
            if( sum < sumaux ) sum = sumaux;
            }
     fout<<sum;
     closef();
}

int main()
{
    solve();
    return 0;
}