Pagini recente » Cod sursa (job #1468679) | Cod sursa (job #3133795) | Cod sursa (job #2943975) | Cod sursa (job #912021) | Cod sursa (job #853586)
Cod sursa(job #853586)
#include<fstream>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
#define cmax 350000
int n,t,m,maxim;
struct punct
{
int x;
int y;
int z;
};
punct p[cmax],w[cmax];
void interc (int l, int m, int r)
{
int k=l-1;
int i=l;
int j=m+1;
while(i<=m && j<=r)
{
if(p[i].x<p[j].x && p[i].y<p[j].y && p[i].z<p[j].z)
{
k++;
w[k]=p[i];
i++;
}
else
{
k++;
w[k]=p[j];
j++;
}
}
while(i<=m)
{
k++;
w[k]=p[i];
i++;
}
while(j<=r)
{
k++;
w[k]=p[j];
j++;
}
for(i=l;i<=r;i++)
p[i]=w[i];
}
void MergeSort (int l, int r)
{
if(l==r)
return;
int mij=(l+r)/2;
MergeSort (l,mij);
MergeSort (mij+1,r);
interc (l,mij,r);
}
int main ()
{
int i;
f>>n;
f>>t;
for(i=1;i<=n*t;i++)
{
f>>p[i].x;
f>>p[i].y;
f>>p[i].z;
if(i%n==0)
MergeSort(i-n+1,i);
}
maxim=0;
m=1;
for(i=1;i<=n*t;i++)
{
if(p[i].x<p[i+1].x && p[i].y<p[i+1].y && p[i].z<p[i+1].z)
m++;
else
{
if(m>=maxim)
maxim=m;
m=1;
}
if(i%n==0)
{
g<<maxim<<"\n";
maxim=0;
m=1;
}
}
f.close();g.close();
return 0;
}