Pagini recente » Cod sursa (job #2101133) | Cod sursa (job #2347677) | Cod sursa (job #2455022) | Cod sursa (job #308343) | Cod sursa (job #1132930)
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("cutii.in");
ofstream out("cutii.out");
struct cutie
{
int x,y,z;
};
cutie v[3501];
int d[3501];
int cmp(cutie c1, cutie c2)
{
if(c1.x < c2.x)
return 1;
else if(c1.x == c2.x)
if(c1.y < c2.y)
return 1;
else if(c1.y == c2.y)
return c1.z < c2.z;
return 0;
}
int cuibarit(cutie c1, cutie c2)
{
return (c1.x < c2.x && c1.y < c2.y && c1.z < c2.z);
}
int main()
{
int n,t,i,j,k,x,y,z,maxim,maxc;
in>>n>>t;
d[n] = 1;
for(i = 1; i <= t; i++)
{
maxim = 1;
for(j = 1; j <= n; j++)
{
in>>x>>y>>z;
v[j] = (cutie){x,y,z};
}
sort(v + 1, v + n + 1, cmp);
for(j = n - 1; j >= 1; j--)
{
maxc = 0;
for(k = j + 1; k <= n; k++)
if(cuibarit(v[j], v[k]) && maxc < d[k])
maxc = d[k];
d[j] = 1 + maxc;
if(maxim < 1 + maxc)
maxim = 1 + maxc;
}
out<<maxim<<'\n';
}
return 0;
}