Cod sursa(job #803492)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 27 octombrie 2012 17:45:29
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;

struct p{
    int a, b, c;
    };

p dp[3505],v[3505];
bool intra(p cutie,p dest)
{
    return (cutie.a<dest.a && cutie.b<dest.b && cutie.c<dest.c);
}
bool cmp(p x,p y)
{
    return x.a<y.a;
}

int main()
{
    int n,t,x;
    ifstream f("cutii.in");
    ofstream g("cutii.out");
    f>>n>>t;
    for(int i=1;i<=t;i++)
    {
        memset(dp,0,sizeof(dp));
        int sz=0;

        for(int j=1;j<=n;j++)
        {
            p cutie;
            f>>cutie.a>>cutie.b>>cutie.c;
            v[j]=cutie;
        }
        sort(v+1,v+n+1,cmp);
         for(int j=1;j<=n;j++)
         {
              for(int k=sz;k>=0;k--)
                if(intra(dp[k],v[j]))
                {
                    if(k+1>sz)
                     {
                        ++sz;
                        dp[k+1]=v[j];
                     }
                     else
                        if(dp[k+1].a<=v[j].a && dp[k+1].b<=v[j].b && dp[k+1].c<=v[j].c)
                            dp[k+1]=v[j];
                    break;
                }
        }
        g<<sz<<"\n";
    }
    return 0;
}