Cod sursa(job #355225)

Utilizator digital_phreakMolache Andrei digital_phreak Data 10 octombrie 2009 14:13:19
Problema Cutii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#define MAXN 3600
using namespace std;

struct Cutie {
	int X,Y,Z;
} B[MAXN];
int N,T,C[MAXN];

inline bool lessCutie(Cutie A,Cutie B) {
	return A.X < B.X && A.Y < B.Y && A.Z < B.Z;
}

ifstream fin("cutii.in");
ofstream fout("cutii.out");

int main() {
	int i,j,maxc;
	Cutie aux;

	fin >> N >> T;
	
	while (T--) {
		memset(B,0,sizeof(B));
		
		for (i=0;i<N;++i) fin >> B[i].X >> B[i].Y >> B[i].Z;
		
		for (i=0;i<N;++i) 
			for (j=i+1;j<N;++j) 
				if (B[i].X * B[i].Y * B[i].Z < B[j].X * B[j].Y * B[j].Z) {
					aux = B[i];
					B[i] = B[j];
					B[j] = aux;
				}

		C[0] = 1;
		for (i=1;i<N;++i) {
			maxc = 0;
			for (j=i-1;j>=0;--j) {
				if (lessCutie(B[i],B[j])) {
					if (C[j] > maxc)
						maxc = C[j];
				}
			}
			C[i] = maxc + 1;
		}
		
		maxc = C[0];
		for (i=0;i<N;++i) {
			if (maxc < C[i]) maxc = C[i];
		}
		
		fout << maxc << "\n";
	}
	
	return 0;
}