Cod sursa(job #2207821)

Utilizator Sergiu1256Ionita Sergiu1256 Data 26 mai 2018 21:46:00
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
//
//  main.cpp
//  flip
//
//  Created by адин on 25.05.2018.
//  Copyright © 2018 Ionitas. All rights reserved.
//

#include <fstream>
using namespace std;
int main(int argc, const char * argv[]) {
    ifstream fin("flip.in");
    ofstream fout("flip.out");
   long long n,m,a[100000][100000],sum = 0,row[100000],col[100000];
    fin>>n>>m;
    for (int i(1); i<=n; i++)
        for (int j(1);j<=m;j++)
            fin>>a[i][j];
    //suma nr poz and negative rows on table 1..n; row
    for(long long i(1); i<=n; i++ ){
        row[i]=0;
        for(long long r,poz(0),neg(0),j(1); j<=m; j++ ){
            r=a[i][j];
            poz += r;//sum pozitive
            neg-= r ; //sum negative
            row[i]= max(poz,neg);//maxim
        }
    }
    //suma nr poz si negative colum on table 1..m; col
    for (long long j(1); j<=m; j++){
        col[j]=0;
        for (long long poz(0),neg(0),r,i(1); i<=n; i++){
            r=a[i][j];
            poz += r;  //sum pozitive
            neg -= r;  // sum negative
            col[j] = max(poz,neg);//maxim
        }
    }
    long long sum1=0;
    for(long long i(1);i<=n;i++)
        for(long long j(1);j<=m;j++)
            sum+=a[i][j];
    
    for(long long i(1);i<=n;i++) sum1+=row[i];
    for(long long i(1);i<=m;i++) sum1+=col[i];
    fout<<sum1-sum<< endl;
    return 0;
}