Cod sursa(job #40936)

Utilizator gigi_becaliGigi Becali gigi_becali Data 27 martie 2007 20:48:40
Problema Cutii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
#include <algorithm>
#include <string>
#define maxn 3502
using namespace std;
struct nod { int x, y, z;};

nod x[maxn];
int a[maxn];
int n, T;
void calcul();
void citire()
{
  int i,k;
  freopen("cutii.in", "r", stdin);
  scanf("%d %d\n", &n, &T);
  for(k=1;k<=T;k++)
    {
      for(i=1;i<=n;i++) scanf("%d %d %d\n", &x[i].x, &x[i].y, &x[i].z);
      calcul();
    }
}
bool operator<(const nod &a, const nod &b)
{
  if(a.z<=b.z) return 1;
  return 0;
}

void calcul()
{
  sort(x+1, x+n+1);
  int i, j;
  memset(a, 0, sizeof(a));
  a[n]=1;
  for(i=n-1;i>=1;i--)
    for(j=i;j<=n;j++) if(x[i].x<=x[j].x && x[i].y<=x[j].y && a[i]<a[j]+1) a[i]=a[j]+1;

  int max=0;
  for(i=1;i<=n;i++) if(max<a[i]) max=a[i];
  printf("%d\n",max);
}

int main()
{
  freopen("cutii.out", "w",stdout);
  citire();
  return 0;
}