Pagini recente » Cod sursa (job #2286241) | Cod sursa (job #1876337) | Cod sursa (job #2916253) | Cod sursa (job #1289935) | Cod sursa (job #647882)
Cod sursa(job #647882)
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 3501
struct P
{int x,y,z;};
P p[N];
int i,n,t,c[N],a[N],b[N];
int M(int a,int b)
{return a<b?a:b;}
int C(P a,P b)
{return a.x<b.x;}
int D(int a[N])
{int i,j,c,b[N],m=0,k;
for(i=1;i<=n;i++)
{for(j=0,k=m;j<k;)
{c=(j+k)>>1;
if(b[c]<a[i])
j=c+1;
else
k=c;}
if(b[j]<a[i])
j++;
if(j>m)
m=j;
b[j]=a[i];}
return m;}
int main()
{FILE *f=fopen("cutii.in","r"),*g=fopen("cutii.out","w");
fscanf(f,"%d%d",&n,&t);
while(t--)
{for(i=1;i<=n;i++)
fscanf(f,"%d%d%d",&p[i].x,&p[i].y,&p[i].z);
sort(p+1,p+n+1,C);
for(i=1;i<=n;i++)
a[i]=p[i].y,b[i]=p[i].z,c[i]=a[i]+b[i];
fprintf(g,"%d\n",M(M(D(a),D(b)),D(c)));}
return 0;}