Pagini recente » Cod sursa (job #3124317) | Cod sursa (job #2254) | Cod sursa (job #990832) | Cod sursa (job #2423734) | Cod sursa (job #1157175)
#include<cstdio>
#define M -2000000000
#include<algorithm>
#include<cstring>
using namespace std;
FILE *f=fopen("cutii.in","r");
FILE *g=fopen("cutii.out","w");
struct cut
{
int x,y,z;
};
cut L[3501];
int aux[3501],perm[3501],nr,n,k,maxim;
int cmp(cut a,cut b)
{
if(a.x>b.x&&a.y>b.y&&a.z>b.z)return 1;
return 0;
}
int scm()
{
int i,j;
for(i=1;i<=k;i++)aux[i]=1;
int maxx;
maxx=M;
for(i=1;i<=k;i++)
{
for(j=i;j>=1;j--)
if(cmp(L[perm[i]],L[perm[j]]))
{
aux[perm[i]]=aux[perm[j]]+1;
maxx=max(maxx,aux[perm[i]]);
j=0;
}
}
return maxx;
}
int main()
{
int i,i1,j,maxx;
fscanf(f,"%d%d",&k,&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=k;j++)
{
nr++;
fscanf(f,"%d%d%d",&L[j].x,&L[j].y,&L[j].z);
}
for(i1=1;i1<=k;i1++)perm[i1]=i1;
maxim=M;
maxx=scm();
while(next_permutation(perm+1,perm+k+1))
{
maxim=max(maxim,maxx);
maxx=scm();
}
fprintf(g,"%d\n",maxim);
}
return 0;
}