Pagini recente » Cod sursa (job #1091814) | Cod sursa (job #990412) | Cod sursa (job #2361841) | Cod sursa (job #2847892) | Cod sursa (job #174783)
Cod sursa(job #174783)
#include <fstream>
using namespace std;
fstream in,out;
int i,j,k;
int t,n;
int m,mt;
int x[3501];
long l;
struct cutie
{
int x,y,z;
};
cutie v[3501];
void sorteaza(cutie v[],int n)
{
int i,j;
cutie aux;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(v[i].x>v[j].x && v[i].y>v[j].y && v[i].z>v[j].z)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
void selectare(cutie a[],long p,long q,long &l)
{
int i,j,dj,di;
cutie aux;
i=p;
j=q;
di=1;
dj=0;
while(i<j)
{
if(a[i].x>a[j].x)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
di=1-di;
dj=1-dj;
}
else
if(a[i].x==a[j].x)
if(a[i].y>a[j].y)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
di=1-di;
dj=1-dj;
}
else
if(a[i].y==a[j].y)
if(a[i].z>a[j].z)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
di=1-di;
dj=1-dj;
}
i=i+di;
j=j-dj;
}
l=i;
}
void qsort(cutie a[],long p,long q)
{
//int l;
if(p<q)
{
selectare(a,p,q,l);
qsort(a,p,l-1);
qsort(a,l+1,q);
}
}
int main()
{
in.open("cutii.in",ios::in);
out.open("cutii.out",ios::out);
in>>n>>t;
for(k=1;k<=t;k++)
{
mt=0;
for(i=1;i<=n;i++)
{
x[i]=0;
in>>v[i].x>>v[i].y>>v[i].z;
}
qsort(v,1,n);
for(i=1;i<=n;i++)
{
m=0;
for(j=1;j<i;j++)
if(x[j]>m && v[i].x>v[j].x && v[i].y>v[j].y && v[i].z>v[j].z)
m=x[j];
x[i]=m+1;
if(mt<m+1) mt=m+1;
}
out<<mt<<endl;
}
in.close();
out.close();
return 0;
}