Cod sursa(job #2112728)

Utilizator Tipy.exeTipy Executabil Tipy.exe Data 23 ianuarie 2018 19:53:51
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
// Link: http://www.infoarena.ro/problema/cutii

#include <iostream>
#include <fstream>

using namespace std;

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

int n, t, maxim, v[3500]; // n= nr cutii, t=nr intrari, maxim=nr maxim de cutii cuibarite, v=vector caracteristic pt cutiile examinate

struct cutie
{
    int x;
    int y;
    int z;
}cutii[3500];

bool test(int a, int b)
{
    if(cutii[a].x>cutii[b].x && cutii[a].y>cutii[b].y && cutii[a].z>cutii[b].z)
        return true;
    return false;
}

int rec(int a, int nr, int b, int memo)
{
    for(int i=b ; i<n ; i++)
    {
        e:
        if(i!=a)
            if(test(a,i))
                if(v[i]!=0)
                    rec(i,nr+1,i+1,memo);
                else
                {
                    nr=nr+v[i];
                    i++;
                    goto e;
                }
    }
    v[memo]=nr;
    if(nr>maxim)
        maxim=nr;
}

int main()
{
    f>>n>>t;
    int x=0;
    while(x<t)
    {
        for(int i=0; i<n ; i++)
            f>>cutii[i].x>>cutii[i].y>>cutii[i].z;
        maxim=0;
        for(int j=0; j<n ; j++)
            rec(j,1,0,j);
        g<<maxim<<endl;
        x++;
    }
}