Cod sursa(job #1238215)

Utilizator alina.rubleaAlina Rublea alina.rublea Data 5 octombrie 2014 23:03:42
Problema Jocul Flip Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.67 kb
#include <stdio.h>
#include <string.h>
#include <math.h>

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

   fp = fopen("flip.in", "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 sumlin = 0,sumcol = 0, 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]);
              sum += 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++) {
           printf("pozlin = %d %d neglin\n",vpozlin[i],vneglin[i]);
           if (vpozlin[i] <= abs(vneglin[i]))
                sumlin += -vneglin[i] - vpozlin[i];
           else
                sumlin += vpozlin[i] + vneglin[i];
       }
        for(i = 0 ; i < m; i++){
            printf("pozcol = %d %d negcol\n",vpozcol[i],vnegcol[i]);
            if (vpozcol[i] <= abs(vnegcol[i]))
                sumcol += -vnegcol[i] - vpozcol[i];
            else
                sumcol += vpozcol[i] + vnegcol[i];
        }

            fprintf(fout,"%d\n",sum + (sumlin - sum) + (sumcol - sum));

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