Cod sursa(job #806200)

Utilizator Marius96Marius Gavrilescu Marius96 Data 2 noiembrie 2012 00:34:26
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
//SURSA PROASTA
#include<cstdio>
#include<cstring>
#include<algorithm>

#define MX 3505
#define MY 3505

using std::sort;
using std::max;

int t[MX][MY];

struct str
{
	int x,y,z;

	bool operator<(const str s)const
		{
			if(x<s.x)
				return true;
			if(x>s.x)
				return false;
			if(y<s.y)
				return true;
			if(y>s.y)
				return false;
			return z<s.z;
		}
}v[3505];

void u (int i,int j,int v)
{
	int sj=j;
	while(i<MX){
		while(j<MY){
			t[i][j]=max (t[i][j],v);
			j+=(j&-j);
		}
		j=sj;
		i+=(i&-i);
	}
}

int g (int i,int j)
{
	int s=0,sj=j;
	while(i){
		while(j){
			s=max (s,t[i][j]);
			j-=(j&-j);
		}
		j=sj;
		i-=(i&-i);
	}

	return s;
}

int main()
{
	freopen ("cutii.in","r",stdin);
	freopen ("cutii.out","w",stdout);

	int n,teste;
	scanf ("%d%d",&n,&teste);

	while(teste--){
//		memset (t,0,sizeof(t));
//		memset (v,0,sizeof(v));

//		for(int i=0;i<n;i++)
//			scanf ("%d%d%d",&v[i].x,&v[i].y,&v[i].z);

		sort (v,v+n);

		int r=0;
		for(int i=0;i<n;i++){
//			int cr=g (v[i].y,v[i].z)+1;
//			u (v[i].y,v[i].z,cr);

//			if(cr>r)
//				r=cr;
		}

		printf ("%d\n",r);
	}

	return 0;
}