Pagini recente » Cod sursa (job #2169315) | Cod sursa (job #2086911) | Cod sursa (job #2923676) | Cod sursa (job #1166275) | Cod sursa (job #2953673)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("cutii.in");
ofstream cout("cutii.out");
const int N = 3509;
struct cuti
{
int x,y,z;
bool operator < (cuti b)
{
return (x<b.x&&y<b.y&&z<b.z);
}
bool operator <= (cuti b)
{
return (x<b.x&&y<b.y&&z<b.z)||(x==b.x&&y==b.y&&z==b.z);
}
bool operator == (cuti b)
{
return (x==b.x&&y==b.y&&z==b.z);
}
bool operator > (cuti b)
{
return (x>b.x&&y>b.y&&z>b.z);
}
bool operator >= (cuti b)
{
return (x>b.x&&y>b.y&&z>b.z)||(x==b.x&&y==b.y&&z==b.z);
}
};
int n,t;
vector<int> aib,L,p;
vector<cuti> a,b;
int Query(int x)
{
int maxi = 0;
for(int i = x; i; i -= i&-i)
maxi = max(aib[i],maxi);
return maxi;
}
void Update(int poz,int val)
{
for(int i = poz; i<= n ; i+=i&-i)
aib[i] = max(aib[i],val);
}
int main()
{
cin>>n>>t;
while(t--)
{
int ans = 1;
aib = L = p = vector<int>(n+4);
a = b = vector<cuti> (n);
for(int i=0;i<n;++i)
cin>>a[i].x>>a[i].y>>a[i].z;
sort(a.begin(),a.end());
for(int i=1;i<n;++i)
if(a[i-1]<a[i])
ans++;
cout<<ans<<'\n';
}
return 0;
}