Cod sursa(job #514865)

Utilizator ms-ninjacristescu liviu ms-ninja Data 19 decembrie 2010 19:29:43
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <algorithm>
using namespace std;
#define dim 3510

int best[dim];

struct lista
{
	int x, y, z;
}v[dim];

int cmp(lista a,lista b)
{
	return a.x<b.x || (a.x==b.x && a.y<b.y) || (a.x==b.x && a.y==b.y && a.z<b.z);
};
 
int max(int a, int b)
{
	if(a<b)
		return 1;
	return 0;
}



int main()
{
	ifstream fin("cutii.in");
	ofstream fout("cutii.out");
	int n, t, i,maxim,j;
	
	fin>>n;
	fin>>t;
	
	for( ; t ;--t)
	{
			
		for(i=1;i<=n;++i)
			fin>> v[i].x >>v[i].y >>v[i].z;
		
		sort(v+1,v+n+1,cmp);
		
		
		best[1]=1;
		maxim=1;
		for(i=1;i<=n;++i)
		{
			for(j=i-1;j>=1;--j)
			{
				if(max(v[j].x,v[i].x)==1)
					if(max(v[j].y,v[i].y)==1)
						if(max(v[j].z,v[i].z)==1)
							if(best[j]+1>best[i])
							{
								best[i]=best[j]+1;
								if(best[j]+1>maxim)
									maxim=best[j]+1;
							}
			}
		}
		for(i=1;i<=n;++i)
			best[i]=0;
		fout<<maxim <<'\n';
	}
	
	return 0;
}