Pagini recente » Cod sursa (job #2275997) | Cod sursa (job #2255148) | Cod sursa (job #3250167) | Cod sursa (job #3041846) | Cod sursa (job #3156051)
#include<bits/stdc++.h>
using namespace std;
ifstream F("cutii.in");
ofstream G("cutii.out");
struct P {
int x,y,z;
bool operator<(P b) const {
return x<b.x;
}
};
int t,n,i,b;
P a[3505];
vector<int> v[3505];
bool O(int p,int i)
{
for(int j:v[p])
if(a[j].y<a[i].y&&a[j].z<a[i].z)
return 1;
return 0;
}
int R(int i)
{
int s=1,d=n,m,l=0;
while(s<=d) {
m=(s+d)>>1;
if(O(m,i))
s=m+1,l=m;
else
d=m-1;
}
v[l+1].push_back(i);
return l+1;
}
int main()
{
for(F>>n>>t;t;--t) {
for(b=0,i=1;i<=n;++i)
v[i].clear();
for(i=1;i<=n;++i)
F>>a[i].x>>a[i].y>>a[i].z;
sort(a+1,a+n+1);
for(i=1;i<=n;++i)
b=max(b,R(i));
G<<b<<'\n';
}
return 0;
}