Cod sursa(job #287745)

Utilizator DjSefuWrong name DjSefu Data 25 martie 2009 09:11:03
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#define NMAX 3505
#include<string.h>
std::ifstream f("cutii.in");
std::ofstream g("cutii.out");
int n,t,i,j,k,max,count[NMAX],ind[NMAX];
struct nod
{ int x,y,z;
  int in;
} box[NMAX],need[NMAX];
void sort(nod *box,int n)
{ int i;
  memset(count,0,sizeof(count));
  for(i=1;i<=n;++i) ++count[box[i].x];
  ind[0]=1;
  for(i=1;i<=n;++i) ind[i]=ind[i-1]+count[i-1];
  for(i=1;i<=n;++i) need[ind[box[i].x]++]=box[i];
  memcpy(box,need,(n+2)*sizeof(int));
}
int main()
{ f>>n>>t;
  for(k=1;k<=t;++k) { for(i=1;i<=n;++i) f>>box[i].x>>box[i].y>>box[i].z,box[i].in=1;
                      sort(box,n);
                      for(i=1;i<n;++i) for(j=i+1;j<=n;++j) if(box[i].y<box[j].y&&box[i].z<box[j].z) if(box[j].in<box[i].in+1) box[j].in=box[i].in+1;
                      max=0;
                      for(i=1;i<=n;++i) if(box[i].in>max) max=box[i].in;
 
                      g<<max<<"\n";
                      }
  f.close();
  g.close();
  return 0;
}