Cod sursa(job #124387)

Utilizator catalaurCatalin catalaur Data 19 ianuarie 2008 00:58:40
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.75 kb
// 
// File:   main.cc
// Author: catalaur
//
// Created on January 18, 2008, 11:26 PM
//

#include <stdio.h>
#include <iostream.h>

//
// 
//
int n,m,a[50][50],i,j,abssum = 0,line[50],col[50];

void check(){
    int lsum = 0 , csum=0;
    for (i=0; i<n; i++){
        lsum=0;
        for (j=0;j<m; j++){
            lsum+=a[i][j];
            col[j]=col[j]+a[i][j];
        }
        line[i]=lsum;
    }
    int mincol = col[0];
    int minline = line[0];
    int k,l;
    for (i=0; i<m; i++){
        if (mincol > col[i]) {
            mincol=col[i];
            k=i;
        }
    }
    for (i=0; i<n; i++){
        if (minline > line[i]) {
            minline=line[i];
            l=i;
        }
    }
    if (minline<=mincol){
        for (i=0;i<m;i++){
            a[l][i]=-a[l][i];
        }
    }else{
        for (i=0;i<n;i++){
            a[i][k]=-a[i][k];
        }
    }
    int sumpoz=0,sumneg=0;
    for (i=0;i<n; i++){
        sumpoz=0;
        sumneg=0;
        for (j=0;j<m;j++){
            sumpoz+=a[i][j];
            sumneg+=-a[i][j];
        }
        cout<<sumpoz<<"    "<<sumneg<<endl;
        if (sumneg>sumpoz){
            for (j=0; j<m;j++){
                a[i][j]=-a[i][j];
            }
        }
    }
    
}
int main() {
    FILE *fi , *fo;
    fi = fopen("flip.in" , "r");
    fscanf(fi , "%d %d" , &n , &m);
    for (i=0; i<n; i++){
        for(j=0; j<m;j++){
            fscanf(fi , "%d" , &a[i][j]);
            col[j]=0;
        }
        line[i]=0;
    }
    fclose(fi);
    check();
    for (i=0; i<n; i++){
        for(j=0; j<m;j++){
            cout<<a[i][j]<<"  ";
            abssum=a[i][j]+abssum;
        }
        cout<<endl;
    }
    fo = fopen("flip.out" , "w");
    fprintf(fo , "%d" , abssum);
    fclose(fo);
    return (EXIT_SUCCESS);
}