Cod sursa(job #442899)

Utilizator cristian9Cristian Zloteanu cristian9 Data 15 aprilie 2010 17:35:52
Problema Cutii Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

struct dimensiuni{
	int x; int y; int z;
};

int cmp (dimensiuni a, dimensiuni b){
    return (a.z<b.z); //aici folosesti "<" daca il vrei crescator sau ">" daca il vrei descrescator;

}

int main()

{
    freopen ("cutii.in", "r", stdin);
    freopen ("cutii.out", "w", stdout);
    
    int n, i, l[32000], max=0, j, t, balmush;
    dimensiuni v[40000], a, b;
    
    scanf("%d %d", &n, &t);
    
    for(balmush=1; balmush<=t; balmush++){
	    for(i=1; i<=n; i++){
			scanf("%d %d %d", &v[i].x, &v[i].y, &v[i].z);
		}
		
		sort (v+1, v+n+1, cmp);
		
		l[1]=1;
		
		for(i=2; i<=n; i++){
			for(j=1; j<=i; j++){
				if((v[j].x<v[i].x) && (v[j].y<v[i].y) && (v[j].z<v[i].z) && (l[j]>max)){
					max=l[j];
				}
			}
			l[i]=max+1;
			max=0;
		}
		
		for(i=1; i<=n; i++){
			if(l[i]>max){
				max=l[i];
			}
		}
		
		printf("%d\n", max);
		max=0;
	}
	return 0;
}


/*#include<stdio.h>

struct dimensiuni{
	int x; int y; int z;
};

int l[100];
int main()
{	
	freopen ("cuti.in", "r", stdin);
	freopen ("cuti.out", "w", stdout);
	
	int i, j, n, v[100], max=0;
	
	scanf("%d ", &n);
	
	for(i=1; i<=n; i++){
		scanf("%d ", &v[i]);
	}
	
	l[1]=1;
	
	for(i=2; i<=n; i++){
		for(j=1; j<=i; j++){
			if(v[j]<v[i] && l[j]>max){
				max=l[j];
			}
		}
		l[i]=max+1;
		max=0;
	}
	 
	for(i=1; i<=n; i++){
		printf("%d ", l[i]);
	}
	
	return 0;
}
*/