Pagini recente » Cod sursa (job #1010276) | Cod sursa (job #2701056) | Cod sursa (job #386972) | Cod sursa (job #170714) | Cod sursa (job #1779897)
#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;
}