Pagini recente » Cod sursa (job #1709579) | Cod sursa (job #2938427) | Cod sursa (job #1129411) | Cod sursa (job #3148812) | Cod sursa (job #500246)
Cod sursa(job #500246)
#include <fstream>
using namespace std;
int nMatrice[17][17];
int nLin, nCol;
void FlipCol(const int &rnWhichCol)
{
if (rnWhichCol)
for (int iii = 1; iii <= nLin; iii++)
nMatrice[iii][rnWhichCol] *= -1;
}
void FlipLin(const int &rnWhichLin)
{
if (rnWhichLin)
for (int jjj = 1; jjj <= nCol; jjj++)
nMatrice[rnWhichLin][jjj] *= -1;
}
int FindLin()
{
for (int iii = 1; iii <= nLin; iii++)
{
int nSum = 0;
for (int jjj = 1; jjj <= nCol; jjj++)
nSum += nMatrice[iii][jjj];
if (nSum < 0) return iii;
}
return 0;
}
int FindCol()
{
for (int jjj = 1; jjj <= nCol; jjj++)
{
int nSum = 0;
for (int iii = 1; iii <= nLin; iii++)
nSum += nMatrice[iii][jjj];
if (nSum < 0) return jjj;
}
return 0;
}
int main()
{
ifstream input("flip.in");
input >> nLin >> nCol;
for (int iii = 1; iii <= nLin; iii++)
for (int jjj = 1; jjj <= nCol; jjj++)
input >> nMatrice[iii][jjj];
input.close();
while (FindLin() || FindCol())
{
FlipLin(FindLin());
FlipCol(FindCol());
}
int nTotal = 0;
for (int iii = 1; iii <= nLin; iii++)
for (int jjj = 1; jjj <= nCol; jjj++)
nTotal += nMatrice[iii][jjj];
ofstream output("flip.out");
output << nTotal;
output.close();
return 0;
}