Cod sursa(job #302306)

Utilizator ooctavTuchila Octavian ooctav Data 8 aprilie 2009 19:59:00
Problema Cutii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.04 kb
// cutii.in.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int N,T;
struct interval
{
	int a,b,c;
};

interval e[4000];
int ver[4000];
char c[4000];
int aux[3];
int compar(const void *a, const void *b)
{
	return(*(int*)a -*(int*)b);
}
void citire(FILE *f1)
{
	for(int j=1;j<=N;j++)
	{
		fscanf(f1,"%d %d %d",&aux[0],&aux[1],&aux[2]);
		qsort(aux,3,sizeof(int),compar);
		e[j].a=aux[2];
 		e[j].b=aux[1];
		e[j].c=aux[0];
	}

}
int main()
{
	int i,j,l,maxim=1,curent=1;
	FILE *f1,*f2;
	f1=fopen("cutii.in","r");
	f2=fopen("cutii.out","w");
	fscanf(f1,"%d %d",&N,&T);
	for(i=1;i<=T;i++)
	{
		citire(f1);
		qsort(e+1,N,sizeof(int),compar);
		for(j=1;j<=N;j++)
			ver[j]=1;
		maxim=1;
		for(j=1;j<=N;j++)
			for(l=j+1;l<=N;l++)
				if(e[j].a<e[l].a && e[j].b<e[l].b && e[j].c<e[l].c)
					if(ver[j]+1>ver[l])
						ver[l]=ver[j]+1;
		for(j=1;j<=N;j++)
			if(ver[j]>maxim)
				maxim=ver[j];
		fprintf(f2,"%d\n",maxim);
	}

	return 0;
}