Cod sursa(job #1001520)

Utilizator Kzsolty96SAPIENTIA OSZTIAN DANIEL KUCSVAN Kzsolty96 Data 25 septembrie 2013 11:45:42
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

typedef struct doboz{
    int x;
    int y;
    int z;
}doboz;

doboz d[3505];
int n;

inline bool cmp(doboz a,doboz b)
{
    if(a.x<b.x || a.x>b.x)
        return a.x<b.x;
    else
        if(a.y<b.y || a.y>b.y)
            return a.y<b.y;
        else
            return a.z<b.z;
}

void megold()
{
    int x,y,z,max=1;
    for(int i=n-1;i>=0 && i>max;i--)
    {
        int max1=1;
        for(int j=i-1;j>=0 && max1+j>=max;j--)
        {
            max1=1;
            x=d[i].x;
            y=d[i].y;
            z=d[i].z;
            for(int k=j;k>=0 && max1+k>=max;k--)
                if(d[k].x<x && d[k].y<y && d[k].z<z)
                {
                    x=d[k].x;
                    y=d[k].y;
                    z=d[k].z;
                    max1++;
                }
            if(max1>max)
                max=max1;
        }
    }
    printf("%d\n",max);
}

int main()
{
    int t,k,i,j;
    freopen("cutii.in","r",stdin);
    freopen("cutii.out","w",stdout);
    scanf("%d %d",&n,&t);
    for(k=0;k<t;k++)
    {
        for(i=0;i<n;i++)
            scanf("%d %d %d",&d[i].x,&d[i].y,&d[i].z);
        sort(d,d+n,cmp);
        megold();
    }
}