Pagini recente » Cod sursa (job #2195770) | x2mobile | Cod sursa (job #3160774) | Cod sursa (job #1192155) | Cod sursa (job #450890)
Cod sursa(job #450890)
#include <cstdio>
#include <algorithm>
using namespace std;
int max(int a, int b)
{
return (a>b)?a:b;
}
struct ctie
{
int a,b,c;
};
const int N = 3501;
int n;
ctie cutie[N];
int lung[N];
void citire()
{
for (int i = 1; i <= n; ++i)
scanf("%d%d%d",&cutie[i].a,&cutie[i].b,&cutie[i].c);
}
bool ordine_buna_sortare (ctie x, ctie y)
{
if (x.a < y.a)
return true;
return false;
}
bool montabil (ctie x, ctie y)
{
return (x.b < y.b)&&(x.c < y.c);
}
int raspuns()
{
int max_lung=0;
for (int i = 1; i <= n; ++i)
{
lung[i] = 0;
for (int j = 1; j <= i; ++j)
if (montabil(cutie[j], cutie[i]) && (lung[j] > lung[i]))
lung[i] = lung[j];
++lung[i]; // Adaug cutia noua.
max_lung = max(max_lung,lung[i]);
}
return max_lung;
}
int main()
{
int t;
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d%d",&n,&t);
for (int i = 1; i <= t; ++i)
{
citire();
sort(cutie+1,cutie+n+1,ordine_buna_sortare);//sortare ca sa fiu sigur ca cutiile la care atasez au lung-ul deja calculat
printf("%d\n",raspuns());
}
return 0;
}