Pagini recente » Cod sursa (job #2316668) | Cod sursa (job #1283266) | Cod sursa (job #2847724) | Cod sursa (job #2864066) | Cod sursa (job #190192)
Cod sursa(job #190192)
#include<cstdio>
#define L 100010
struct point{
long x;
point *leg;
}*l[L],*p;
long a[L],n,nr,lung[L],i,j,ok,max;
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%ld",&n);
for(i=0;i<n;i++)
scanf("%ld",&a[i]);
nr=0;
for(i=0;i<n;i++){
ok=-1;max=0;
for(j=0;j<nr;j++)
if(a[i]>l[j]->x)
if(lung[j]>max){
max=lung[j];
ok=j;
}
if(ok==-1){
nr++;
l[nr-1]=new point;
l[nr-1]->x=a[i];
l[nr-1]->leg=0;
lung[nr-1]=1;
}
else{
p=new point;
p->x=a[i];
p->leg=l[ok];
l[ok]=p;
lung[ok]++;
}
}
max=lung[0];
for(i=1;i<nr;i++)
if(lung[i]>max)max=lung[i];
printf("%ld\n",max);
fclose(stdin);
fclose(stdout);
return 0;
}