Pagini recente » Cod sursa (job #2287350) | Cod sursa (job #3001472) | Monitorul de evaluare | Cod sursa (job #457005) | Cod sursa (job #1625199)
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int x;
int y;
int z;
int l;
int t;
} cutii;
int compare (const void * a, const void * b)
{
cutii *orderA = (cutii *)a;
cutii *orderB = (cutii *)b;
return ( orderB->l - orderA->l );
}
int main()
{
FILE *f,*g;
f = fopen("cutii.in","rt");
g = fopen("cutii.out","wt");
int n,t,i,j,max=0,maxi,k;
cutii m[3501],aux;
fscanf(f,"%d%d",&n,&t);
for(k=0;k<t;k++)
{max=0;
for(i=0; i<n; i++)
{
fscanf(f,"%d%d%d",&m[i].x,&m[i].y,&m[i].z);
m[i].l=m[i].x+m[i].y+m[i].z;
m[i].t=0;
}
qsort(m, n, sizeof(cutii), compare);
for(i=0; i<n; i++)
{
maxi=0;
for(j=0; j<i; j++)
{
if( m[i].x < m[j].x && m[i].y< m[j].y && m[i].z < m[j].z )
if(m[j].t>maxi)
{ maxi=m[j].t;
}
}
m[i].t=maxi+1;
if(m[i].t>max)
max=m[i].t;
}
fprintf(g,"%d\n",max);
}
return 0;
}