Pagini recente » Cod sursa (job #2050073) | Cod sursa (job #817601) | Cod sursa (job #913180) | Cod sursa (job #213172) | Cod sursa (job #381959)
Cod sursa(job #381959)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE* fin=fopen("cutii.in","r");
FILE* fout=fopen("cutii.out","w");
struct cutie
{
int x,y,z;
};
cutie a[3500];
int d[3500];
bool operator< (const cutie &a, const cutie &b)
{
if (a.x!=b.x)
return a.x<b.x;
if (a.y!=b.y)
return a.y<b.y;
return a.z<b.z;
}
bool fitsin (const cutie &a, const cutie &b)
{
return (a.x<b.x)&&(a.y<b.y)&&(a.z<b.z);
}
int main()
{
int t,n;
fscanf(fin,"%d %d",&n,&t);
for (int k=0; k<t; k++)
{
for (int i=0; i<n; i++)
fscanf(fin,"%d %d %d",&a[i].x,&a[i].y,&a[i].z);
sort(a, a+n);
int maxm=0;
for (int i=n; i>=0; i--)
{
d[i]=1;
for (int j=i+1; j<n; j++)
{
if (fitsin(a[i],a[j])&&(d[j]+1>d[i]))
d[i]=d[j]+1;
}
if (d[i]>maxm)
maxm=d[i];
}
fprintf(fout,"%d\n",maxm);
}
fclose(fin);
fclose(fout);
return 0;
}