Pagini recente » Cod sursa (job #1245070) | Cod sursa (job #994903) | Cod sursa (job #1959704) | Cod sursa (job #608155) | Cod sursa (job #514590)
Cod sursa(job #514590)
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
struct cutie{
int x;
int y;
int z;
};
bool compareFunction(cutie A, cutie B) {
if (A.x != B.x) return (A.x < B.x);
else if (A.y != B.y) return (A.y < B.y);
else return (A.z <= B.z);
}
int N,T;
vector<cutie> v;
void readData() {
int i;
for (i = 0; i < N; i++) {
scanf("%d %d %d\n", &v[i].x, &v[i].y, &v[i].z);
printf("%d %d %d\n", v[i].x, v[i].y, v[i].z);
}
}
int solve(){
int length[3501];
int i,j,max;
int result = 0;
length[0] = 1;
cutie aux1,aux2;
for (i = 1; i < N; i++){
max = 0;
aux1 = v[i];
for (j = 0; j < i; j++){
aux2 = v[j];
if ((aux1.x > aux2.x)&&(aux1.y > aux2.y) && (aux1.z > aux2.z) && (length[j] > max)){
max = length[j];
}
}
length[i] = max + 1;
if (result < max + 1) result = max + 1;
}
return result;
}
void afisare() {
int i;
for (i = 0; i < N; i++)
printf("%d %d %d\n", v[i].x, v[i].y, v[i].z);
}
int main() {
freopen("cutii.in","r",stdin);
freopen("cutii.out","w",stdout);
scanf("%d %d\n", &N, &T);
int i,j;
cutie aux;
for (i = 0; i < T; i++){
v.clear();
for (j = 0; j < N; j++) {
scanf("%d %d %d\n", &aux.x, &aux.y, &aux.z);
v.push_back(aux);
}
sort (v.begin(), v.end(), compareFunction);
printf("%d\n",solve());
}
return 0;
}