Cod sursa(job #1238955)

Utilizator alina.rubleaAlina Rublea alina.rublea Data 7 octombrie 2014 23:01:59
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.65 kb
#include <stdio.h>
#include <string.h>
#include <math.h>

void main()
{
   FILE *fp,*fout;
   char buff[255];

   fp = fopen("input.txt", "r");
   fout = fopen("flip.out","w");
   int i,j;
   int n,m;
   int a[17][17];
   int vpozlin[17],vneglin[17],vpozcol[17],vnegcol[17];
   int sum = 0;
   if( fp != NULL ){
       fscanf(fp,"%d%d",&n,&m);
       printf("n = %d m = %d\n",n,m);
       for(i = 0; i < n; i++)
            vpozlin[i] = vneglin[i] = 0;
       for(i = 0; i < m; i++)
            vpozcol[i] = vnegcol[i] = 0;
       for (i = 0 ; i < n; i++){
          for (j = 0; j < m; j++){
              fscanf(fp,"%d",&a[i][j]);
              if (a[i][j] > 0)
              {
                vpozlin[i] += a[i][j];
                vpozcol[j] += a[i][j];
              }
              else
              {
                vneglin[i] += a[i][j];
                vnegcol[j] += a[i][j];
              }
          }
       }
       for(i = 0 ; i < n; i++) {
           int ok = 0;
           if (vpozlin[i] < abs(vneglin[i]))
                ok = 1;
           if (ok) {
               for (j = 0; j < m; j++)
                    a[i][j] *= (-1); 
           }
            //for j
       }
       for(i = 0 ; i < m; i++){
            int ok = 0;
            if (vpozcol[i] < abs(vnegcol[i]))
                ok = 1;
            if (ok) {
               for (j = 0; j < n; j++)
                    a[j][i] *= (-1); 
           }
                
        }
        
        for (i = 0; i < n; i++)
            for (j = 0; j < m; j++)
                    sum += a[i][j];
        

        fprintf(fout,"%d\n",sum);
        printf("%d\n",sum);

      }
      fclose(fp);
      fclose(fout);
   }