Pagini recente » Cod sursa (job #3273939) | Cod sursa (job #1672668) | Cod sursa (job #3226561) | Cod sursa (job #2927567) | Cod sursa (job #14348)
Cod sursa(job #14348)
#include<stdio.h>
#include<stdlib.h>
struct nod { int a, b, c;} v[3502];
int n, t, x[3502];
int comp( const void *i, const void *j)
{
nod *ei= (nod*)i,
*ej= (nod*)j;
if( ei->a != ej->a) return ej->a - ei->a;
if( ei->b != ej->b) return ej->b - ei->b;
return ej->c - ei->c;
}
void afis()
{
for(int i=1; i<=n; ++i) printf("%d %d %d\n",v[i].a, v[i].b, v[i].c);
printf("\n");
}
void solve()
{
int MAX=0;
for(int i=1; i<=n; ++i) {
int max=0;
for(int j=i-1; j>=1; --j) if( v[j].b> v[i].b && v[j].c> v[i].c && x[j] > max) max=x[j];
max++;
x[i]= max;
if(max> MAX) MAX=max;
}
printf("%d\n",MAX);
}
int main()
{
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d",&n,&t);
for(int i=1; i<=t; ++i) {
for(int j=1; j<=n; ++j) scanf("%d %d %d",&v[j].a,&v[j].b,&v[j].c);
qsort(v+1, n, sizeof(nod), comp);
solve();
}
return 0;
}