Pagini recente » Cod sursa (job #1347397) | Cod sursa (job #1189315) | Cod sursa (job #382436) | Cod sursa (job #336415) | Cod sursa (job #1390390)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
int N, T;
int maxim;
int dp[3505];
struct cutii
{
int x, y, z;
};
cutii A[3505];
bool cmp(cutii A, cutii B)
{
return (A.x < B.x || (A.x == B.x && A.y < B.y) || (A.x == B.x && A.y == B.y && A.z < B.z));
}
void scmax()
{
dp[1] = 1;
maxim = 1;
for (int i = 2; i <= N; ++i)
{
dp[i] = 1;
for (int j = 1; j < i; ++j)
if (A[i].x > A[j].x && A[i].y > A[j].y && A[i].z > A[j].z && dp[i] < dp[j] + 1)
{
dp[i] = dp[j] + 1;
if (dp[i] > maxim)
maxim = dp[i];
}
}
}
int main()
{
fin >> N >> T;
while (T--)
{
for (int i = 1; i <= N; ++i)
fin >> A[i].x >> A[i].y >> A[i].z;
sort(A + 1, A + N + 1, cmp);
scmax();
fout << maxim << '\n';
}
fin.close();
fout.close();
return 0;
}