Cod sursa(job #333281)

Utilizator marinMari n marin Data 22 iulie 2009 09:32:47
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include<algorithm>
#define DIM 4000

using namespace std;
struct pct {
	int x;
	int y;
	int z;
};

pct V[DIM];
int X[DIM];
int T[DIM];

int i,t,N,TT,m,p,u,mid;

int cmp(pct a, pct b) {
	return a.x<b.x;
}

int main(){
	FILE *f = fopen("cutii.in","r");
	FILE *g = fopen("cutii.out","w");
	fscanf(f,"%d %d",&N, &TT);
	for (t=1;t<=TT;t++) {
		for (i=1;i<=N;i++) {
			fscanf(f, "%d %d %d", &V[i].x, &V[i].y, &V[i].z);
		}
		sort(V+1,V+N+1,cmp);
		
		
		X[1] = 1; m = 1;
		for (i=2;i<=N;i++) {
			p = 1; u = m;
			while (p<=u) {
				mid = p+(u-p)/2;
				if (V[X[mid]].y < V[i].y && V[X[mid]].z < V[i].z)
					p = mid + 1;
				else
					u = mid - 1;
			}
	
			if (p>u) {
				if (p>m)
					m++;
				X[p] = i;
				T[i] = X[p-1];
			}
	
		}
	
		fprintf(g,"%d\n",m);
		
		
		
		
		
	}
	fclose(f);
	fclose(g);
	
	return 0;
}