Cod sursa(job #2689797)
| Utilizator | Data | 22 decembrie 2020 11:29:15 | |
|---|---|---|---|
| Problema | Jocul Flip | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.56 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
#define ll long long
#define ui unsigned int
int n, m, a[17][17] = {0};
int sum() {
int ans = 0;
for(int i=1; i<=m; i++)
ans += a[0][i];
return ans;
}
int main () {
f >> n >> m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) {
f >> a[i][j];
a[0][j] += a[i][j];
a[i][0] += a[i][j];
}
bool ok = 1;
while(ok) {
ok = 0;
for(int i=1; i<=n; i++)
if(a[i][0] < 0) {
ok = 1;
for(int j=1; j<=m; j++) {
if(a[i][j] < 0) {
a[i][0] += 2*abs(a[i][j]);
a[0][j] += 2*abs(a[i][j]);
}
else {
a[i][0] -= 2*a[i][j];
a[0][j] -= 2*a[i][j];
}
a[i][j] *= -1;
}
}
for(int j=1; j<=m; j++)
if(a[0][j] < 0) {
ok = 1;
for(int i=1; i<=n; i++) {
if(a[i][j] < 0) {
a[0][j] += 2*abs(a[i][j]);
a[i][0] += 2*abs(a[i][j]);
}
else {
a[0][j] -= 2*a[i][j];
a[i][0] -= 2*a[i][j];
}
a[i][j] *= -1;
}
}
}
g << sum();
}
