Pagini recente » Cod sursa (job #1141079) | Cod sursa (job #1433006) | Cod sursa (job #1847984) | Cod sursa (job #2872945) | Cod sursa (job #1874696)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
struct coord
{
int val;
int x;
int y;
int z;
};
const int NMAX = 100 + 5;
int n, t, maxx;
coord v[NMAX], dp[NMAX];
void read()
{
for (int i = 1; i <= n; ++i)
fin >> v[i].x >> v[i].y >> v[i].z;
}
bool cmp(coord a, coord b)
{
if(a.x > b.x) return a.x < b.x;
}
int main()
{
fin >> n >> t;
while (t--)
{
read();
sort(v + 1, v + n + 1, cmp);
dp[n].val = 1;
dp[n].x = v[n].x;
dp[n].y = v[n].y;
dp[n].z = v[n].z;
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].val > maxx)
maxx = dp[j].val;
dp[i].val = maxx + 1;
}
fout << dp[1].val << '\n';
}
}