Cod sursa(job #273118)

Utilizator ooctavTuchila Octavian ooctav Data 8 martie 2009 10:24:27
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
// cutii.in.cpp : Defines the entry point for the console application.
//

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

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

interval e[4000];
char c[4000];
int aux[3];
int compar(const void *a, const void *b)
{
	return(*(int*)a -*(int*)b);
}
int main()
{
	int i,j,f,g,h,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++)
	{
		maxim=0;
		for(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];
		}
		qsort(e,N,sizeof(int),compar);
		for(j=1;j<=N;j++)
		{
			if(c[j]==1)
				continue;
			aux[0]=e[j].a;
			aux[1]=e[j].b;
			aux[2]=e[j].c;
			curent=1;
			for(l=j+1;l<=N;l++)
			{
				if(c[l]==1)
					continue;
				if(aux[0]<=e[l].a && aux[1]<=e[l].b && aux[2]<=e[l].c)
				{
					aux[0]=e[l].a;
					aux[1]=e[l].b;
					aux[2]=e[l].c;
					curent++;
					c[l]=1;
				}
			}
			if(curent>maxim)
				maxim=curent;
		}
		for(j=1;j<=N;j++)
			c[j]=0;
		fprintf(f2,"%d\n",maxim);
	}

	return 0;
}