Cod sursa(job #2478698)

Utilizator ivddabDabelea Ioana-Viviana ivddab Data 22 octombrie 2019 16:29:36
Problema Cutii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#define NM 3503
#define N 103
#define pas(x) (x&(-x))
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
int n,t,i,j,k,mx,S;
int r[NM],aib[NM][NM];
struct cutie{
   int x,y,z;
};
cutie a[NM];
bool cmp( cutie c, cutie d ){
  return c.x<d.x;
}
void add(int q,int p,int val){
   for(i=q;i<=n;i+=pas(i))
    for(j=p;j<=n;j+=pas(j))
      aib[i][j]=max(aib[i][j],val);
}
int sum(int q,int p){
   int max1=0;
   for(i=q;i>0;i-=pas(i))
    for(j=p;j>0;j-=pas(j))
      max1=max(max1,aib[i][j]);
   return max1;
}
int main()
{
    f>>n>>t;
    while(t!=0){ t--;
        for(i=1;i<=n;i++) f>>a[i].x>>a[i].y>>a[i].z;
        sort(a+1,a+n+1,cmp);
        mx=0;
        for(k=1;k<=n;k++){
            S=sum(a[k].y,a[k].z)+1;
            mx=max(mx,S);
            add(a[k].y,a[k].z,S);
        }
        g<<mx<<'\n';
        memset(aib,0,sizeof(aib));
    }
    return 0;
}