Pagini recente » Cod sursa (job #3163313) | Cod sursa (job #774615) | Cod sursa (job #2165969) | Cod sursa (job #2140259) | Cod sursa (job #14985)
Cod sursa(job #14985)
#include <stdio.h>
FILE *f,*g;
int a[3501][4],v[3501],w[3501];
int main()
{
int n,t,i,j,k,l,nr;
f=fopen("cutii.in","rt");
g=fopen("cutii.out","wt");
fscanf(f,"%d %d",&n,&t);
for (l=1;l<=t;l++)
{
for (i=1;i<=n;i++)
fscanf(f,"%d %d %d",&a[i][1],&a[i][2],&a[i][3]);
k=n;
do
{
j=0;
for (i=1;i<k;i++)
if (a[i][1]>a[i+1][1]||(a[i][1]==a[i+1][1]&&a[i][2]>a[i+1][2])
||(a[i][1]==a[i+1][1]&&a[i][2]==a[i+1][2]&&a[i][3]>a[i+1][3]))
{
j=a[i][1];
a[i][1]=a[i+1][1];
a[i+1][1]=j;
j=a[i][2];
a[i][2]=a[i+1][2];
a[i+1][2]=j;
j=a[i][3];
a[i][3]=a[i+1][3];
a[i+1][3]=j;
}
k=j;
}
while (k);
nr=0;
v[1]=1;
w[1]=1;
for (i=2;i<=n;i++)
{
j=i;
while (j>0&&a[i][2]<=a[j][2])
j--;
if (j==0)
v[i]=1;
else
v[i]=v[j]+1;
j=i;
while (j>0&&a[i][3]<=a[j][3])
j--;
if (j==0)
w[i]=1;
else
w[i]=w[j]+1;
}
for (i=1;i<=n;i++)
if (v[i]>w[i]&&v[i]>nr)
nr=v[i];
else
if (v[i]<=w[i]&&w[i]>nr)
nr=w[i];
fprintf(g,"%d\n",nr);
}
fclose(f);
fclose(g);
return 0;
}