Cod sursa(job #984257)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 august 2013 21:41:18
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct P
{
     int x,y,z;
};
P a[3501];
int i,n,t,m,k,b[3501],j;
 
int C(P a,P b)
{
     return a.x<b.x;
}
 
int main()
{
     freopen("cutii.in","r",stdin),
     freopen("cutii.out","w",stdout),
     scanf("%d%d",&n,&t);
     while(t--)
     {
           for(i=1;i<=n;i++)
                  scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
           sort(a+1,a+n+1,C);
           for(m=0,i=1;i<=n;i++)
           {
                  if(a[b[m]].y<a[i].y&&a[b[m]].z<a[i].z)
                          b[++m]=i;
                  for(j=0,k=m;j<k;)
                  if(a[b[(j+k)/2]].y<a[i].y&&a[b[(j+k)/2]].z<a[i].z)
                          j=(j+k)/2+1;
                  else
                          k=(j+k)/2;
                  if(a[i].y<a[b[j]].y||a[i].z<a[b[j]].z)
                          b[j]=i;
           }
           printf("%d\n",m);
     }
}