Pagini recente » Cod sursa (job #2814328) | Cod sursa (job #2213417) | Cod sursa (job #1209481) | Cod sursa (job #969368) | Cod sursa (job #1976530)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
int n, T, poz[3505], D[3505], sol;
struct cutie{
int X;
int Y;
int Z;
} v[3505];
inline bool cmp( int i, int j ){
if( v[i].X > v[j].X )
return false;
else{
if( v[i].X == v[j].X ){
if( v[i].Y > v[j].Y )
return false;
else{
if( v[i].Y == v[j].Y ){
if( v[i].Z > v[j].Z )
return false;
else
return true;
}else
return true;
}
}else
return true;
}
}
inline bool ok( int i, int j ){// j sa intre in i
if( v[j].X < v[i].X && v[j].Y < v[i].Y && v[j].Z < v[i].Z )
return true;
return false;
}
int main(){
fin >> n >> T;
for( int t = 1; t <= T; t++ ){
for( int i = 1; i <= n; i++ ){
fin >> v[i].X >> v[i].Y >> v[i].Z;
poz[i] = i;
}
sort( poz + 1, poz + n + 1, cmp );
sol = 0;
for( int i = 1; i <= n; i++ ){
D[i] = 1;
for( int j = 1; j < i; j++ ){
if( ok( poz[i], poz[j] ) == true && D[i] < D[j] + 1 )
D[i] = D[j] + 1;
}
sol = max( sol, D[i] );
}
fout << sol << "\n";
}
return 0;
}