Pagini recente » Cod sursa (job #262993) | Cod sursa (job #444159) | Cod sursa (job #1013166) | Cod sursa (job #2556257) | Cod sursa (job #2371430)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,i,j,s;
int mat[17][17],ss;
bool numerge;
int sumlin(int l)
{
int ii,s=0;
for(ii=1;ii<=m;ii++)
s+=mat[l][ii];
return s;
}
int sumcol(int c)
{
int ii,s=0;
for(ii=1;ii<=n;ii++)
s+=mat[ii][c];
return s;
}
struct alegere
{
char rez;
int nr;
};
alegere x;
void cauta()
{
int mim=1000000000;
int ii;
for(ii=1;ii<=m;ii++)
if(sumcol(ii)<mim)
{
x.rez='C';
x.nr=ii;
mim=sumcol(ii);
}
for(ii=1;ii<=n;ii++)
if(sumlin(ii)<mim)
{
x.rez='L';
x.nr=ii;
mim=sumlin(ii);
}
if(mim>=0)
numerge=true;
}
void comuta()
{
int ii;
if(x.rez=='C')
{
for(ii=1;ii<=n;ii++)
{
mat[ii][x.nr]*=-1;
}
}
else
{
for(ii=1;ii<=m;ii++)
{
mat[x.nr][ii]*=-1;
}
}
}
int suma;
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{fin>>mat[i][j];
ss+=mat[i][j];}
while(7>5)
{
cauta();
if(numerge)
break;
comuta();
cout<<x.nr<<" "<<x.rez<<"\n";
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
suma+=mat[i][j];
fout<<suma;
}