Pagini recente » Cod sursa (job #2710730) | Cod sursa (job #2344429) | Cod sursa (job #2555345) | Cod sursa (job #638164) | Cod sursa (job #902436)
Cod sursa(job #902436)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("cutii.in");
ofstream g("cutii.out");
int n,l[3501],poz[3501],v[3501],i,j;
typedef struct {int x,y,z;}CUTII;
CUTII c[3501];
void citire()
{
for (i=1;i<=n;i++)
f>>c[i].x>>c[i].y>>c[i].z;
}
void intersc(int &a, int &b)
{
int aux; aux=a;a=b;b=aux;
}
int cmp (CUTII a, CUTII b)
{
return (a.z<b.z);
}
/*
void bubble()
{
int ok;
do
{
ok=1;
for (i=1;i<=n-1;i++)
{
if (cutii[3][i]>cutii[3][i+1])
{
ok=0;
intersc(cutii[1][i],cutii[1][i+1]);
intersc(cutii[2][i],cutii[2][i+1]);
intersc(cutii[3][i],cutii[3][i+1]);
}
}
}
while (ok==0);
}
*/
//scm
void scm()
{
int max,p;
for (i=1;i<=n;i++) l[i]=1;
for (i=n-1;i>=1;i--)
{
max=p=0;
for (j=i+1;j<=n;j++)
if (c[i].x<c[j].x)
if (l[j]>max&&c[i].z<c[j].z&&c[i].y<c[i].y)
{
max=l[j];
p=j;
}
poz[i]=p;
l[i]=max+1;
}
max=0;
for (i=1;i<=n;i++) if (l[i]>max) max=l[i];
g<<max<<'\n';
}
int main()
{
int t,l;
f>>n>>t;
for (l=1;l<=t;l++)
{
citire();
sort(c+1,c+n+1,cmp);
scm();
}
return 0;
}