Cod sursa(job #2618468)

Utilizator mikiduta12Mihai Pasareanu mikiduta12 Data 25 mai 2020 00:43:26
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.55 kb


#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");

void mcitire(int& n, int& m, int a[][100],int &S1)
{
    fin >> n >> m;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
        {
            fin >> a[i][j]; S1 += a[i][j];
        }
}
void flipl(int linie,int m, int a[][100])
{
    for (int i = 1; i <= m; i++)
        a[linie][i] *= -1;
}
void flipc(int coloana,int n, int a[][100])
{
    for (int i = 1; i <= n; i++)
        a[i][coloana] *= -1;
}
int suma(int n, int m,int a[][100])
{
    int S = 0;
    for (int i = 1; i <=n; i++)
        for (int j = 1; j <= m; j++)
        {
            S += a[i][j];
 }
    return S;
}
void sortare(long frec[])
{
    long aux;
    for (long i = 1; i < 256; i++)
        for (long j = i + 1; j <= 256; j++)
            if (frec[i] < frec[j])
            {
                aux = frec[i];
                frec[i] = frec[j];
                frec[j] = aux;
            }
}
long* frec = new long[257];
int main()
{
    int i, j, m, n, a[100][100], S1 = 0; 
    mcitire(n, m, a,S1);
    for (i = 1; i <= n; i++)
    {
        flipl(i, m, a);
        for (j = 1; j <= m; j++)
        {
            flipc(j, n, a);
            suma(n, m, a);
            frec[i * j] = suma(n,m,a);
            flipc(j, n, a);
        }
        flipl(i, m, a);
    }
    sortare(frec);
    for (i = 1; i <= 256; i++)
        fout << frec[i] << " ";
    fout.close();
    delete [] frec;
    return 0;
}