Pagini recente » Cod sursa (job #111480) | Cod sursa (job #311995) | Cod sursa (job #2823258) | Cod sursa (job #1093847) | Cod sursa (job #3266746)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ifstream f("cutii.in");
ofstream g("cutii.out");
const int nMax=1e6+5;
ll n, t, nr, rez;
struct numar
{
ll x, y, z;
} a[nMax];
bool cmp(numar a, numar b)
{
if(a.x*a.y*a.z==b.x*b.y*b.z)
{
int nr1=0, nr2=0;
if(a.x<=b.x) nr1++;
else nr2++;
if(a.y<=b.y) nr1++;
else nr2++;
if(a.z<=b.z) nr1++;
else nr2++;
return nr1>nr2;
}
return a.x*a.y*a.z<b.x*b.y*b.z;
}
bool verif(numar a, numar b)
{
if(a.x>b.x && a.y>b.y && a.z>b.z) return true;
return false;
}
void solve()
{
for(int i=1; i<=n; i++)f >> a[i].x >> a[i].y >> a[i].z;
sort(a+1, a+n+1, cmp);
ll nr=0;
numar x=a[n];
rez=0;
nr=1;
bool ok=false;
int rm=n-1;
while(rm>=1)
{
nr=1;
for(int i=rm; i>=1; i--)
{
if(verif(x, a[i])==true) x=a[i], nr++;
}
x=a[rm];
rm--;
rez=max(rez, nr);
}
g << rez << '\n';
}
int main()
{
ios_base::sync_with_stdio(NULL);
f >> n >> t;
while(t)
{
t--;
solve();
}
}