Cod sursa(job #1480465)

Utilizator costinelutOnciu Constanin costinelut Data 2 septembrie 2015 17:11:33
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.66 kb
#include <fstream>

using namespace std;

ifstream f("cutii.in");
ofstream g("cutii.out");

int main()
{
    int n,m,i,L[4/*501*/],l[4/*501*/],h[4/*501*/],matrice[4/*501*/][4],aux,j=0,k=1,nrc=0,auxx;
    bool ok=0;

    f>>n>>m;

    for(i=1;i<=n;i++)
        for(j=1;j<=3;j++)
            matrice[i][j]=j;

    while(m)
    {
        for(i=1;i<=n;i++)
        {
            f>>L[i]>>l[i]>>h[i];
        }

        do
        {
            ok=0;
            for(i=1;i<n;i++)
                if(L[i]>L[i+1])
                {
                    aux=L[i];
                    L[i]=L[i+1];
                    L[i+1]=aux;
                    ok=1;
                    auxx=matrice[k][i];
                    matrice[k][i]=matrice[k][i+1];
                    matrice[k][i+1]=auxx;
                }
        }while(ok);
        k++;


        do
        {
            ok=0;
            for(i=1;i<n;i++)
                if(l[i]>l[i+1])
                {
                    aux=l[i];
                    l[i]=l[i+1];
                    l[i+1]=aux;
                    ok=1;
                    auxx=matrice[k][i];
                    matrice[k][i]=matrice[k][i+1];
                    matrice[k][i+1]=auxx;
                }
        }while(ok);
        k++;


        do
        {
            ok=0;
            for(i=1;i<n;i++)
                if(h[i]>h[i+1])
                {
                    aux=h[i];
                    h[i]=h[i+1];
                    h[i+1]=aux;
                    ok=1;
                    auxx=matrice[k][i];
                    matrice[k][i]=matrice[k][i+1];
                    matrice[k][i+1]=auxx;
                }
        }while(ok);

        int ajut=1;
        bool okk=1;

        while(ajut<=n&&nrc<n)
        {
            if(ajut==1)
            {
                for(i=ajut+1;i<=n;i++)
                {
                    for(j=1;j<=3;j++)
                    {
                        if(matrice[ajut][j]!=matrice[i][j])
                            okk=0;
                    }

                    if(okk==1)
                        nrc++;
                    else
                        okk=1;
                }
            }
            else if(ajut==n)
            {
                for(i=ajut-1;i>=1;i--)
                {
                    for(j=n;j>=1;j--)
                    {
                            if(matrice[ajut][j]!=matrice[i][j])
                            okk=0;
                    }

                    if(okk==1)
                        nrc++;
                    else
                        okk=1;
                }
            }
            else
            {
                for(i=ajut+1;i<=n;i++)
                {
                    for(j=1;j<=3;j++)
                    {
                        if(matrice[ajut][j]!=matrice[i][j])
                            okk=0;
                    }

                    if(okk==1)
                        nrc++;
                    else
                        okk=1;
                }

                for(i=ajut-1;i>=1;i--)
                {
                    for(j=n;j>=1;j--)
                    {
                            if(matrice[ajut][j]!=matrice[i][j])
                            okk=0;
                    }

                    if(okk==1)
                        nrc++;
                    else
                        okk=1;
                }
             }

             ajut++;
        }
        if(nrc>n)
        {
            nrc=nrc-(nrc-n);
        }

        g<<nrc<<'\n';

        nrc=0;

        m--;
        k=1;

    }
    return 0;
}