Pagini recente » Monitorul de evaluare | Cod sursa (job #881569) | Cod sursa (job #1762928) | Cod sursa (job #436514) | Cod sursa (job #488317)
Cod sursa(job #488317)
#include<iostream>
#include <stdio.h>
using namespace std;
int randuri, coloane;
int mat[16][16];
int sumaconstituienta()
{
int total = 0;
for(int rand = 0; rand < randuri; rand ++)
{
for(int coloana = 0; coloana < coloane; coloana++)
{
total += mat[rand][coloana];
}
}
return total;
}
int branch(int rand, int col)
{
mat[rand][col] = -mat[rand][col];
for(int randd = 0; rand < randuri; rand++)
{
mat[randd][col] = -mat[randd][col];
}
for(int coloana = 0; coloana < coloane; coloana++)
{
mat[rand][ coloana] = -mat[rand][coloana];
}
}
int main()
{
FILE *rFile, *wFile;
rFile = fopen("flip.in", "r");
fscanf(rFile, "%d", &randuri);
fscanf(rFile, "%d", &coloane);
for(int rand = 0; rand < randuri; rand ++)
{
for(int coloana = 0; coloana < coloane; coloana++)
{
fscanf(rFile, "%d", &mat[rand][coloana]);
}
}
fclose(rFile);
int maxtotal = sumaconstituienta();
for(int d = 0; d < 10; d++){
for(int rand = 0; rand < randuri; rand++)
{
for(int coloana = 0; coloana < coloane; coloana++)
{
branch(rand,coloana);
int sumax = sumaconstituienta();
if(sumax > maxtotal)
maxtotal = sumax;
branch(rand, coloana);
}
}
}
branch(1, 1);
for(int d = 0; d < 10; d++){
for(int rand = 0; rand < randuri; rand++)
{
for(int coloana = 0; coloana < coloane; coloana++)
{
branch(rand,coloana);
int sumax = sumaconstituienta();
if(sumax > maxtotal)
maxtotal = sumax;
branch(rand, coloana);
}
}
}
wFile = fopen("flip.out", "w+");
fprintf(wFile, "%d", maxtotal);
fclose(wFile);
return 0;
}