Pagini recente » tema | Cod sursa (job #2322923) | Cod sursa (job #1830622) | Cod sursa (job #964606) | Cod sursa (job #1024779)
/*Gigel a descoperit un nou joc pe care l-a numit "Flip". Acesta se joaca pe o tabla dreptunghiulara de dimensiuni N*M care contine numere intregi. Fiecare linie si fiecare coloana are un comutator care schimba starea tuturor elementelor de pe acea linie sau coloana, inmultindu-le cu -1. Scopul jocului este ca pentru o configuratie data a tablei de joc sa se actioneze asupra liniilor si coloanelor astfel incat sa se obtina o tabla cu suma elementelor cat mai mare.
Cerinta
Dandu-se o configuratie pentru tabla "Flip", realizati un program care sa determine suma maxima pe care Gigel o poate obtine.
Date de Intrare
Prima linie a fisierului flip.in contine doua numere intregi N si M, separate prin cate un spatiu, care reprezinta dimensiunea tablei. Urmatoarele N linii contin cate M numere intregi seperate prin cate un spatiu care descriu configuratia tablei de joc.
Date de Iesire
Prima linie a fisierului flip.out contine un numar care va reprezenta suma maxima pe care Gigel o poate obtine comutand liniile si coloanele tablei de joc.
Restrictii si precizari
1 ≤ N, M ≤ 16
Tabla de joc contine numere intregi din intervalul [-1.000.000,1.000.000]*/
#include <stdio.h>
#include <stdlib.h>
FILE *fin, *fout;
int main()
{
int m,n,i,j,contor;
int a[1000][16];
fin = fopen("flip.in","r");
fout = fopen("flip.out","w");
fscanf(fin,"%d %d\n", &m , &n);
if ((m<1)||(n>16)){
printf("date de intrare invalide");
return 1;
}
for (i=0 ; i<m ; i++){
for (j=0 ; j<n ; j++)
fscanf(fin,"%d ", &a[i][j]);
fscanf(fin,"\n");
}
//Parcurgere pe linii
for (i=0 ; i<m ; i++){
contor = 0;
for (j=0 ; j<n ; j++)
contor = contor + a[i][j];
if (contor < 0)
for (j=0 ; j<n ; j++)
a[i][j] = a[i][j] * -1;
}
//Parcurgere pe coloane
for (j=0 ; j<n ; j++){
contor = 0;
for (i=0 ; i<m ; i++)
contor = contor + a[i][j];
if (contor < 0)
for (i=0 ; i<m ; i++)
a[i][j] = a[i][j] * (-1);
}
contor=0;
for (i=0 ; i<m ; i++){
for (j=0 ; j<n ; j++)
contor = contor + a[i][j];
}
fprintf(fout,"%d",contor);
fclose(fin);
fclose(fout);
return 0;
}