Pagini recente » Cod sursa (job #1172508) | Cod sursa (job #1863082) | Cod sursa (job #2335260) | Cod sursa (job #2139364) | Cod sursa (job #1240356)
#include <stdio.h>
#include <string.h>
#include <math.h>
void main()
{
FILE *fp,*fout;
char buff[255];
fp = fopen("flip.in", "r");
fout = fopen("flip.out","w");
int i,j;
int n,m;
int a[17][17],alin[17][17],acol[17][17];
int vpozlin[17],vneglin[17],vpozcol[17],vnegcol[17];
int sumlin[17],sumcol[17];
int sum = 0;
if( fp != NULL ){
fscanf(fp,"%d%d",&n,&m);
//printf("n = %d m = %d\n",n,m);
for(i = 0; i < n; i++)
vpozlin[i] = vneglin[i] = 0;
for(i = 0; i < m; i++)
vpozcol[i] = vnegcol[i] = 0;
for (i = 0 ; i < n; i++){
for (j = 0; j < m; j++){
fscanf(fp,"%d",&a[i][j]);
alin[i][j] = acol[i][j] = a[i][j];
if (alin[i][j] > 0)
{
vpozlin[i] += alin[i][j];
vpozcol[j] += alin[i][j];
}
else
{
vneglin[i] += alin[i][j];
vnegcol[j] += alin[i][j];
}
}
}
for(i = 0 ; i < n; i++) {
//printf("pozlin = %d %d neglin\n",vpozlin[i],vneglin[i]);
int ok = 0;
if (vpozlin[i] < abs(vneglin[i]))
{
ok = 1;
sumlin[i] = -vneglin[i] - vpozlin[i];
}
else
sumlin[i] = vpozlin[i] + vneglin[i];
if (ok) {
for (j = 0; j < m; j++)
alin[i][j] *= (-1);
}
//for j
}
for(i = 0 ; i < m; i++){
//printf("pozcol = %d %d negcol\n",vpozcol[i],vnegcol[i]);
int ok = 0;
if (vpozcol[i] < abs(vnegcol[i]))
{
ok = 1;
sumcol[i] = -vnegcol[i] - vpozlin[i];
}
else
sumcol[i] = vnegcol[i] + vpozcol[i];
for (j = 0; j < n; j++)
if(ok)
acol[j][i] = (-1) * alin[j][i];
else
acol[i][j] = alin[i][j];
}
for (i = 0; i < n; i++){
for (j = 0; j < m; j++){
//printf("i = %d j = %d\n", i,j);
//printf("%d %d %d\n",a[i][j],acol[i][j],alin[i][j]);
if (alin[i][j] == acol[i][j])
{
sum += alin[i][j];
}
else{
if(acol[i][j] != a[i][j]){
sum += acol[i][j];
//printf("!acol\n");
}
else
{
if (sumlin[i] >= sumcol[j])
sum += alin[i][j];
else
sum += acol[i][j];
}
}
//printf("sum = %d\n", sum);
}
}
//if (sumlin <= sumcol)
// sum += sumcol;
//else
// sum += sumlin;
fprintf(fout,"%d\n",sum);
printf("%d\n",sum);
}
fclose(fp);
fclose(fout);
}