Pagini recente » Cod sursa (job #2879066) | Cod sursa (job #2322846) | Cod sursa (job #2809143) | Cod sursa (job #2570070) | Cod sursa (job #1197343)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("cutii.in");
ofstream cout("cutii.out");
void sort(long left, long right, long A[],long B[],long H[])
{
long i,j,pivot;
i=left; j=right; pivot=A[(right+left)/2];
do {
while (A[i]<pivot) ++i;
while (A[j]>pivot) --j;
if (i<=j ) {
swap(A[i],A[j]);
swap(B[i],B[j]);
swap(H[i],H[j]);
++i;
--j;
}
}
while (i<=j);
if (i<right) sort(i,right,A,B,H);
if (j>left) sort(left,j,A,B,H);
}
long n,maxim,t,A[5000],B[5000],D[5000],H[5000];
int main()
{
cin>>n>>t;
for (int f=1;f<=t;++f) {
for (int i=1;i<=n;++i) {
A[i]=0;
B[i]=0;
H[i]=0;
}
for (int i=1;i<=n;++i) cin>>A[i]>>B[i]>>H[i];
sort(1,n,A,B,H);
D[1]=1;
for (int i=2;i<=n;++i){
maxim=0;
for (int j=1;j<i;++j){
if (A[j]<A[i] && B[j]<B[i] && H[j]<H[i]) maxim=max(maxim,D[j]);
D[i]=maxim+1;
}
}
maxim=0;
for (int i=1;i<=n;i++) maxim=max(maxim,D[i]);
cout<<maxim<<"\n";
}
return 0;
}