Pagini recente » Cod sursa (job #261857) | Cod sursa (job #1931047) | Cod sursa (job #64836) | Cod sursa (job #462504) | Cod sursa (job #1612353)
#include <iostream>
#include <fstream>
using namespace std;
struct p{int x;int y;int z;}v[3501];
int sortare(int i,int j)
{int aux,mod;
mod=1;
while(i<j)
{if(v[i].z>v[j].z)
{aux=v[i].z;
v[i].z=v[j].z;
v[j].z=aux;
aux=v[i].y;
v[i].y=v[j].y;
v[j].y=aux;
aux=v[i].x;
v[i].x=v[j].x;
v[j].x=aux;
mod=1-mod;
}
i=i+mod;
j=j+mod-1;
}
return i;
}
void divide(int i,int j)
{int k;
if(i<j)
{k=sortare(i,j);
divide(i,k-1);
divide(k+1,j);
}}
int main()
{int n,t,i,a,b,j,best[3501],max;
fstream f("cutii.in",ios::in);
fstream g("cutii.out",ios::out);
f>>n>>t;
for(i=1;i<=t;i++)
{
for(j=1;j<=n;j++)
{f>>v[j].x>>v[j].y>>v[j].z;best[j]=1;}
divide(1,n);
max=0;
for(a=2;a<=n;a++)
for(j=1;j<a;j++)
if(v[j].x<v[a].x && v[j].y<v[a].y)
{best[a]=best[j]+1;
if(best[a]>max)
max=best[a];}
g<<max<<'\n';
}}