Pagini recente » Cod sursa (job #2064860) | Cod sursa (job #1555538) | Cod sursa (job #1598702) | Cod sursa (job #1968379) | Cod sursa (job #2232352)
//============================================================================
// Name : JoculFlip.cpp
// Author : Cristi Rosu
// Version :
// Copyright : All rights reserved to Cristi Rosu
// Description : Jocul Flip in C++, Ansi-style
//============================================================================
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int a[20][20], b[20][20], n, m, i, j, k, t;
int s1=0, s2=0, min1=1000000, min2=1000000;
void afisare(int v[20][20]){
for(i=1; i<=n; i++){
for(j=1; j<=m; j++)
g<<v[i][j]<<" ";
g<<endl;
}
}
int suma_matrice(int v[20][20]){
int suma=0;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
suma+=v[i][j];
return suma;
}
void flip(int v[20][20]){
for(i=1; i<=n; i++){
for(j=1; j<=m; j++)
s1+=v[i][j];
if(s1<min1){
min1=s1;
k=i;
}
s1=0;
}
for(i=1; i<=m; i++)
v[k][i]*=(-1);
for(i=1; i<=m; i++){
for(j=1; j<=n; j++)
s2+=v[j][i];
if(s2<min2){
min2=s2;
t=i;
}
s2=0;
}
for(i=1; i<=n; i++)
v[i][t]*=(-1);
}
int main() {
int var1=0, var2=1;
f>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++){
f>>a[i][j];
b[i][j]=a[i][j];
}
while(var1<var2){
flip(a);
var1=suma_matrice(a);
flip(a);
var2=suma_matrice(a);
}
g<<var1;
return 0;
}