Cod sursa(job #2115594)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 26 ianuarie 2018 21:58:28
Problema Cutii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
struct cutie{int x,y,z;}a[3505];
int n,t,d[3505],j,mx,d1[3505],d2[3505];
inline bool cmp(cutie A, cutie B)
   {return A.x<B.x;
   }

int main()
{int i;
 fin>>n>>t;
 while(t)
 {mx=0;
  for(i=1;i<=n;i++)
    {fin>>a[i].x>>a[i].y>>a[i].z;
     d[i]=1;
     d1[i]=100000;
     d2[i]=100000;
    }
 sort(a+1,a+n+1,cmp);
 t--;
 for(i=1;i<=n;i++)
    {for(j=i-1;j>=1;j--)
        {if(a[i].y>a[j].y&&a[i].z>a[j].z){d[i]=max(d[i],d[j]+1);
                                          if(d1[d[i]]>a[i].y)d1[d[i]]=a[i].y;
                                          if(d2[d[i]]>a[i].z)d2[d[i]]=a[i].z;
                                          if(d[i]==mx+1||(d1[d[i]-1]>a[i].y||d2[d[i]-1]>a[i].z))break;
                                         }
        }
        mx=max(d[i],mx);
    }
  fout<<mx<<"\n";
 }
}