Pagini recente » Cod sursa (job #2612964) | Cod sursa (job #681749) | Cod sursa (job #3147466) | Cod sursa (job #2103235) | Cod sursa (job #287745)
Cod sursa(job #287745)
#include<fstream>
#define NMAX 3505
#include<string.h>
std::ifstream f("cutii.in");
std::ofstream g("cutii.out");
int n,t,i,j,k,max,count[NMAX],ind[NMAX];
struct nod
{ int x,y,z;
int in;
} box[NMAX],need[NMAX];
void sort(nod *box,int n)
{ int i;
memset(count,0,sizeof(count));
for(i=1;i<=n;++i) ++count[box[i].x];
ind[0]=1;
for(i=1;i<=n;++i) ind[i]=ind[i-1]+count[i-1];
for(i=1;i<=n;++i) need[ind[box[i].x]++]=box[i];
memcpy(box,need,(n+2)*sizeof(int));
}
int main()
{ f>>n>>t;
for(k=1;k<=t;++k) { for(i=1;i<=n;++i) f>>box[i].x>>box[i].y>>box[i].z,box[i].in=1;
sort(box,n);
for(i=1;i<n;++i) for(j=i+1;j<=n;++j) if(box[i].y<box[j].y&&box[i].z<box[j].z) if(box[j].in<box[i].in+1) box[j].in=box[i].in+1;
max=0;
for(i=1;i<=n;++i) if(box[i].in>max) max=box[i].in;
g<<max<<"\n";
}
f.close();
g.close();
return 0;
}