Cod sursa(job #1779897)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 15 octombrie 2016 17:59:47
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>

using namespace std;
struct vec
{
    int a,b,c;
};
vec v[35005];
int n,t,i,k,st,dr,mij,d[35005],ok;
int compara(vec A, vec B)
{
    ok=1;
    if(A.a>B.a) ok=0;
    if(A.b>B.b) ok=0;
    if(A.c>B.c) ok=0;
    return ok;
}
int main()
{
    ifstream f("cutii.in");
    ofstream g("cutii.out");
    f>>n>>t;
    while(t)
    {
        t--;
        for(i=1; i<=n; i++)
        {
            f>>v[i].a>>v[i].b>>v[i].c;
        }
        k=0;
        for(i=1; i<=n; i++)
        {
            if(compara(v[d[k]],v[i]))
            {
                k++;
                d[k]=i;
            }
            else
            {
                st=0;
                dr=k;
                while(st+1<dr)
                {
                    mij=(st+dr)/2;
                    if(!compara(v[d[mij]],v[i])) dr=mij;
                    else st=mij;
                }
                if(!compara(v[i],v[d[dr]])&&compara(v[d[st]],v[i]))
                {
                    d[dr]=i;
                }
                else
                {
                    d[st]=i;
                }
            }
        }
        g<<k<<'\n';
    }
    f.close(); g.close();
    return 0;
}