Cod sursa(job #1222566)

Utilizator rangerChihai Mihai ranger Data 23 august 2014 16:49:47
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<algorithm>
using namespace std;

ifstream cin("cutii.in");
ofstream cout("cutii.out");
const int nmax = 354;

struct cutie
{
    int x,y,z;
};
bool cmp(cutie a,cutie b) {
 return  (a.x<b.x); }
cutie c[nmax];
int n,t,i,v[nmax];

bool mmare(cutie a, cutie b)
{
    return a.x>b.x && a.y>b.y && a.z>b.z;
}

int main()
{
    cin>>n>>t;
    while (t--)
    {
        for (i=1;i<=n;i++) cin>>c[i].x>>c[i].y>>c[i].z;
        sort(c+1,c+n+1,cmp);
        int k=1; v[1]=1;
        for (i=2;i<=n;i++)
            if (mmare(c[i],c[v[k]])) v[++k]=i;
             else {
                int l=1,r=k,sol=0;
                while (l<=r) {
                    int mij=(l+r)/2;
                    if (mmare(c[v[mij]],c[i])) sol=mij,r=mij-1;
                      else l=mij+1;
                }
                if (sol)
                v[sol]=i;
             }
        cout<<k<<"\n";
    }
    return 0;
}