Pagini recente » Cod sursa (job #909387) | Cod sursa (job #1950221) | Cod sursa (job #3002986) | Cod sursa (job #73701) | Cod sursa (job #1494459)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 3500
int x[MAXN],y[MAXN],z[MAXN],l[MAXN],lSize,conb;
char *buffer;
inline void swap(int b,int e,int *v){
int aux=v[b];
v[b]=v[e];
v[e]=aux;
}
void myqsort(int begin,int end,int *v){
int b=begin,e=end,pivot=v[(b+e)/2];
while(b<=e){
while(v[b]<pivot) b++;
while(v[e]>pivot) e--;
if(b<=e){
swap(b,e,x);
swap(b,e,y);
swap(b,e,z);
b++;
e--;
}
}
if(begin<e) myqsort(begin,e,v);
if(b<end) myqsort(b,end,v);
}
inline int cit(){
int nr=0;
while(conb<lSize&&buffer[conb]>='0'&&buffer[conb]<='9'){
nr=nr*10+buffer[conb]-'0';
conb++;
}
return nr;
}
inline void blanc(){
while(conb<lSize&&buffer[conb]<'0'||buffer[conb]>'9')
conb++;
}
int main(){
FILE*fi,*fout;
int t,i,nr,j,max,n;
fi=fopen("cutii.in" ,"rb");
fout=fopen("cutii.out" ,"w");
fseek(fi,0,SEEK_END);
lSize=ftell(fi);
rewind(fi);
buffer=(char*) malloc(sizeof(char)*lSize);
fread(buffer,1,lSize,fi);
conb=0;
n=cit();
blanc();
t=cit();
blanc();
while(t){
for(i=0;i<n;i++){
x[i]=cit();
blanc();
y[i]=cit();
blanc();
z[i]=cit();
blanc();
}
myqsort(0,n-1,x);
l[n-1]=1;
nr=1;
for(i=n-2;i>=0;i--){
max=0;
for(j=i+1;j<n;j++){
if(max<l[j]&&y[i]<y[j]&&z[i]<z[j])
max=l[j];
}
l[i]=max+1;
if(l[i]>nr)
nr=l[i];
}
fprintf(fout,"%d\n" ,nr);
t--;
}
fclose(fi);
fclose(fout);
return 0;
}