Pagini recente » Cod sursa (job #1641939) | Cod sursa (job #1363212) | Cod sursa (job #2358783) | Cod sursa (job #2943752) | Cod sursa (job #514617)
Cod sursa(job #514617)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct cutie{
int x;
int y;
int z;
};
int compare (const void * x, const void * y)
{
struct cutie *A = ( cutie *) x;
struct cutie *B = ( cutie *) y;
return A->x - B->x;
}
int N,T;
cutie v[3501];
int solve(){
int length[3501];
int i,j,max;
length[0] = 1;
cutie aux1,aux2;
for (i = 1; i < N; i++){
aux1 = v[i];
length[i] = 1;
for (j = i - 1; j >= 0; j--){
aux2 = v[j];
if (( aux1.x > aux2.x ) && ( aux1.y > aux2.y ) && ( aux1.z > aux2.z ) && ( length[j] + 1 > length[i] )){
length[i] = length[j] + 1;
}
}
}
max = 0;
for (i = 0; i < N; i++) {
if (max < length[i]) max = length[i];
}
return max;
}
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;
for (i = 0; i < T; i++){
for (j = 0; j < N; j++) {
scanf("%d %d %d\n", &v[j].x, &v[j].y, &v[j].z);
}
qsort(v, N, sizeof(cutie), compare);
printf("%d\n",solve());
}
return 0;
}