Cod sursa(job #2315982)

Utilizator alex_matei20Alex Matei alex_matei20 Data 10 ianuarie 2019 21:04:57
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 36.74 kb
#include <iostream>
#include <fstream>

using namespace std;

int combinatii(int n,int k){
    int C=0;
    int nfact=1;
    int kfact=1;
    int nkfact=1;
    for (int i=1;i<=n;i++){
        nfact=i*nfact;
    }

    for (int i=1;i<=k;i++){
        kfact=i*kfact;
    }
    for (int i=1;i<=n-k;i++){
        nkfact=i*nkfact;
    }

    C=nfact/(kfact*nkfact);
    return C;
}


int main()
{

    struct{
        int cate=0;
        int suma[10];
        int linii[50][25];
    }randuri[50];

    struct{
        int cate=0;
        int suma[10];
        int linii[50][16];
    }coloane[50];

    int a[50][16];

    int maxim_linie=0,maxim_coloana=0;

   ifstream f1("flip.in");
   ofstream f2("flip.out");

    int n,m;

    f1>>n;
    f1>>m;
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            f1>>a[i][j];

    int nrcomb=0;
    int w=0;

    int primar=0;
    for (int i=0;i<n;i++){
        primar++;
        nrcomb=combinatii(n,i+1);
            ///---
            if (primar==1){
                randuri[i].cate=1;
                for (int q=0;q<1;q++)
                    for (int w=0;w<n;w++){
                        randuri[i].linii[w][q]=w;
                        for (int s=0;s<m;s++)
                         a[w][s]*=-1;
                        for (int d=0;d<n;d++)
                            for (int f=0;f<m;f++)
                                randuri[i].suma[w]+=a[d][f];
                        for (int s=0;s<m;s++)
                            a[w][s]*=-1;
                    }
            }
            if (i+1==2){
                randuri[i].cate=2;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++){
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                w++;
                            }
                }
            }
            ///------

            if (i+1==3){
                randuri[i].cate=3;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                                for(int u3=u2+1;u3<n;u3++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                w++;
                            }
                }
            }

            ///-----------

            if (i+1==4){
                randuri[i].cate=4;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                w++;
                            }
                }
            }

            ///-----

            if (i+1==5){
                randuri[i].cate=5;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                w++;
                            }
                }
            }

            ///----

            if (i+1==6){
                randuri[i].cate=6;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                 for(int u6=u5+1;u6<n;u6++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                randuri[i].linii[w][q+5]=u6;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                w++;
                            }
                }
            }


            ///---
            if (i+1==7){
                randuri[i].cate=7;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                 for(int u6=u5+1;u6<n;u6++)
                                 for(int u7=u6+1;u7<n;u7++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                randuri[i].linii[w][q+5]=u6;
                                randuri[i].linii[w][q+6]=u7;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                w++;
                            }
                }
            }


            ///----

            if (i+1==8){
                randuri[i].cate=8;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                 for(int u6=u5+1;u6<n;u6++)
                                 for(int u7=u6+1;u7<n;u7++)
                                 for(int u8=u7+1;u8<n;u8++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                randuri[i].linii[w][q+5]=u6;
                                randuri[i].linii[w][q+6]=u7;
                                randuri[i].linii[w][q+7]=u8;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;

                                w++;
                            }
                }
            }

            ///----

            if (i+1==9){
                randuri[i].cate=9;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                 for(int u6=u5+1;u6<n;u6++)
                                 for(int u7=u6+1;u7<n;u7++)
                                 for(int u8=u7+1;u8<n;u8++)
                                 for(int u9=u8+1;u9<n;u9++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                randuri[i].linii[w][q+5]=u6;
                                randuri[i].linii[w][q+6]=u7;
                                randuri[i].linii[w][q+7]=u8;
                                randuri[i].linii[w][q+8]=u9;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u9][s]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u9][s]*=-1;

                                w++;
                            }
                }
            }
            ///-----

            if (i+1==10){
                randuri[i].cate=10;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<n;u1++)
                            for(int u2=u1+1;u2<n;u2++)
                              for(int u3=u2+1;u3<n;u3++)
                                for(int u4=u3+1;u4<n;u4++)
                                 for(int u5=u4+1;u5<n;u5++)
                                 for(int u6=u5+1;u6<n;u6++)
                                 for(int u7=u6+1;u7<n;u7++)
                                 for(int u8=u7+1;u8<n;u8++)
                                 for(int u9=u8+1;u9<n;u9++)
                                 for(int u10=u9+1;u10<n;u10++)
                                {
                                randuri[i].linii[w][q]=u1;
                                randuri[i].linii[w][q+1]=u2;
                                randuri[i].linii[w][q+2]=u3;
                                randuri[i].linii[w][q+3]=u4;
                                randuri[i].linii[w][q+4]=u5;
                                randuri[i].linii[w][q+5]=u6;
                                randuri[i].linii[w][q+6]=u7;
                                randuri[i].linii[w][q+7]=u8;
                                randuri[i].linii[w][q+8]=u9;
                                randuri[i].linii[w][q+9]=u10;
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u9][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u10][s]*=-1;


                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        randuri[i].suma[w]+=a[d][f];
                                for (int s=0;s<m;s++)
                                    a[u1][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u2][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u3][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u4][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u5][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u6][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u7][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u8][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u9][s]*=-1;
                                for (int s=0;s<m;s++)
                                    a[u10][s]*=-1;

                                w++;
                            }
                }
            }

            ///-----

    }

    int primac=0;

///-===================================================================
    for (int i=0;i<m;i++){
        nrcomb=combinatii(m,i+1);
            ///---
        primac++;
        if (primac==1){
                w=0;
                coloane[i].cate=1;
                for (int q=0;q<1;q++)
                    for (int w=0;w<m;w++){
                        coloane[i].linii[w][q]=w;
                        for (int s=0;s<n;s++)
                         a[s][w]*=-1;
                        for (int d=0;d<n;d++)
                            for (int f=0;f<m;f++)
                                coloane[i].suma[w]+=a[d][f];
                        for (int s=0;s<n;s++)
                            a[s][w]*=-1;
                    }


            }


            ///-----------
            if (i+1==2){
                coloane[i].cate=2;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;

                                w++;
                            }
                }
            }

            ///-------------

            if (i+1==3){
                coloane[i].cate=3;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                             for(int u3=u2+1;u3<m;u3++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                coloane[i].linii[w][q+2]=u3;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                w++;
                            }
                }
            }

            ///---------------

            if (i+1==4){
                coloane[i].cate=4;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                             for(int u3=u2+1;u3<m;u3++)
                              for(int u4=u3+1;u4<m;u4++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                coloane[i].linii[w][q+2]=u3;
                                coloane[i].linii[w][q+3]=u4;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                w++;
                            }
                }
            }

            ///--
            if (i+1==5){
                coloane[i].cate=5;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                             for(int u3=u2+1;u3<m;u3++)
                              for(int u4=u3+1;u4<m;u4++)
                              for(int u5=u4+1;u5<m;u5++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                coloane[i].linii[w][q+2]=u3;
                                coloane[i].linii[w][q+3]=u4;
                                coloane[i].linii[w][q+4]=u5;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;

                                w++;
                            }
                }
            }

            ///--

            if (i+1==6){
                coloane[i].cate=6;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                             for(int u3=u2+1;u3<m;u3++)
                              for(int u4=u3+1;u4<m;u4++)
                              for(int u5=u4+1;u5<m;u5++)
                              for(int u6=u5+1;u6<m;u6++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                coloane[i].linii[w][q+2]=u3;
                                coloane[i].linii[w][q+3]=u4;
                                coloane[i].linii[w][q+4]=u5;
                                coloane[i].linii[w][q+5]=u6;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u6]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u6]*=-1;

                                w++;
                            }
                }
            }

            ///--

            if (i+1==7){
                coloane[i].cate=7;
                for (int q=0;q<1;q++){
                    w=0;
                        for(int u1=0;u1<m;u1++)
                            for(int u2=u1+1;u2<m;u2++)
                             for(int u3=u2+1;u3<m;u3++)
                              for(int u4=u3+1;u4<m;u4++)
                              for(int u5=u4+1;u5<m;u5++)
                              for(int u6=u5+1;u6<m;u6++)
                              for(int u7=u6+1;u7<m;u7++)
                                {
                                coloane[i].linii[w][q]=u1;
                                coloane[i].linii[w][q+1]=u2;
                                coloane[i].linii[w][q+2]=u3;
                                coloane[i].linii[w][q+3]=u4;
                                coloane[i].linii[w][q+4]=u5;
                                coloane[i].linii[w][q+5]=u6;
                                coloane[i].linii[w][q+6]=u7;
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u6]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u7]*=-1;

                                for (int d=0;d<n;d++)
                                    for (int f=0;f<m;f++)
                                        coloane[i].suma[w]+=a[d][f];
                                for (int s=0;s<n;s++)
                                    a[s][u1]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u2]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u3]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u4]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u5]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u6]*=-1;
                                for (int s=0;s<n;s++)
                                    a[s][u7]*=-1;
                                w++;
                            }
                }
            }

            ///--
    }
///---------============================================================


    int maxri=0,maxrj=0;
    int maxci=0,maxcj=0;

    maxim_linie=randuri[0].suma[0];
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            if (randuri[i].suma[j]>maxim_linie) {
                    maxri=i;
                    maxrj=j;
                    maxim_linie=randuri[i].suma[j];
                }
    }

    maxim_coloana=coloane[0].suma[0];

    for (int i=0;i<m;i++){
        for (int j=0;j<m;j++)
            if (coloane[i].suma[j]>maxim_coloana) {
                    maxci=i;
                    maxcj=j;
                    maxim_coloana=coloane[i].suma[j];
                }
    }


    int de_schimbat_linie[50];

    int u=0;
    for (int i=0;i<randuri[maxri].cate;i++){
        u=randuri[maxri].linii[maxrj][i];
        for (int s=0;s<m;s++)
            a[u][s]*=-1;
    }

    for (int i=0;i<coloane[maxci].cate;i++){
        u=coloane[maxci].linii[maxcj][i];
        for (int s=0;s<n;s++)
            a[s][u]*=-1;
    }
    int suma_finala=0;
    for (int i=0;i<n;i++){
        for (int j=0;j<m;j++){
            suma_finala+=a[i][j];
        }
    }
    f2<<suma_finala;
    return 0;


}