Pagini recente » Cod sursa (job #2672621) | Cod sursa (job #2262107) | Cod sursa (job #2472596) | Cod sursa (job #3209116) | Cod sursa (job #1948887)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
struct cutie
{
int x;
int y;
int z;
};
const int NMAX = 3500 + 5;
cutie v[NMAX];
int n, t;
int dp[NMAX];
bool cmp(cutie a, cutie b)
{
return a.x < b.x;
}
int main()
{
int maxx;
fin >> n >> t;
for (int test = 1; test <= t; ++test)
{
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= n; ++i)
fin >> v[i].x >> v[i].y >> v[i].z;
sort(v + 1, v + n + 1, cmp);
dp[n] = 1;
for (int i = n - 1; i >= 1; --i)
{
maxx = 0;
for (int 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)
if (dp[j] > maxx)
{
maxx = dp[j];
}
}
dp[i] = maxx + 1;
}
maxx = dp[1];
for (int i = 2; i <= n; ++i)
maxx = max(maxx, dp[i]);
fout << maxx << '\n';
}
return 0;
}