Cod sursa(job #902890)

Utilizator kommancs96Nagy Daniel kommancs96 Data 1 martie 2013 17:14:27
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
//
//  main.cpp
//  Flip
//
//  Created by Nagy Dani on 2013.03.01..
//  Copyright (c) 2013 Nagy Dani. All rights reserved.
//
#include <stdio.h>
#include <iostream>
int n,m;
int tab[16][16];
int result;
void
_read(){
    FILE*in=fopen("flip.in", "r");
    fscanf(in, "%d%d",&n,&m);
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            fscanf(in,"%d",&tab[i][j]);
        }
    }
}
void
_write(){
    FILE*out =fopen("flip.out", "w");
    fprintf(out, "%d",result);
}
int
max_mat(int a[][16],int x,int y){
    int max=a[0][0];
    for (int i=0;i<x;i++){
        for (int j=0;j<y ; j++) {
            if (a[i][j]>max) {
                max=a[i][j];
            }
        }
    }
    return max;
}
int
negsum(int mat[16][16],int x, int y){
    int s=0;
    for (int i=0;i<n; i++) {
        for (int j=0; j<m; j++) {
            if (i==x) {
                s+= -1*mat[i][j];
            } s+=mat[i][j];
            if (j==y) {
                s+= -1*mat[i][j];
            }else s+=mat[i][j];
            
        }
    }
    s+=mat[x][y];
    return s;
}
void
solve(){
    int res[16][16];
    for (int i=0; i<n; i++) {
        for(int j=0;j<m;j++){
            res[i][j]=negsum(tab, i, j);
        }
    }
    result = max_mat(res, n, m);
}
int main(int argc, const char * argv[])
{
    _read();
    solve();
    _write();
    return 0;
}