Cod sursa(job #2316691)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 12 ianuarie 2019 11:43:59
Problema Cutii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("cutii.in");
ofstream g("cutii.out");

int n,t,i,k,a[3510],b[3510],aib[3510][3510];

int main()
{
    f>>n>>t;
    for(;t;t--)
    {
        for(i=1;i<=n;i++)
        {
            f>>k;
            f>>a[k]>>b[k];
        }
        int Ans=0;
        for(k=1;k<=n;k++)
        {
            int ans=0;
            for(int p=a[k]-1;p;p-=p&-p)
                for(int r=b[k]-1;r;r-=r&-r)
                    ans=max(aib[p][r],ans);
            for(int p=a[k];p<=n;p+=p&-p)
                for(int r=b[k];r<=n;r+=r&-r)
                    aib[p][r]=max(aib[p][r],ans+1);
            Ans=max(Ans,ans+1);
        }
        g<<Ans<<'\n';
        for(i=1;i<=n;i++)
            for(int p=a[i];p<=n;p+=p&-p)
                for(int r=b[i];r<=n;r+=r&-r)
                    aib[p][r]=0;
    }
    return 0;
}