Pagini recente » Cod sursa (job #2866659) | Cod sursa (job #1712329) | Cod sursa (job #1162502) | Cod sursa (job #2291045) | Cod sursa (job #609340)
Cod sursa(job #609340)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct box{int x,y,z;} v[3501];
struct cmp_b{bool operator()(box i,box j){return i.z<j.z;}};
int main()
{
int n,t,i,j,k,aux,sol,a[3501][3501];;
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d\n",&n,&t);
for (;t;--t)
{
sol=0;
memset(a,0,sizeof(a));
for (i=1;i<=n;++i)
scanf("%d %d %d\n",&v[i].x,&v[i].y,&v[i].z);
sort(v+1,v+n+1,cmp_b());
for (i=1;i<=n;++i)
{
aux=0;
for (j=v[i].x;j;j-=j&-j)
for (k=v[i].y;k;k-=k&-k)
if (a[j][k]>aux)
aux=a[j][k];
for (j=v[i].x;j<=n;j+=j&-j)
for (k=v[i].y;k<=n;k+=k&-k)
if (a[j][k]<aux+1)
a[j][k]=aux+1;
if (aux+1>sol)
sol=aux+1;
}
printf("%d\n",sol);
}
return 0;
}