Pagini recente » Cod sursa (job #2282781) | Cod sursa (job #2101587) | Cod sursa (job #3173786) | Cod sursa (job #2411648) | Cod sursa (job #412296)
Cod sursa(job #412296)
#include<stdio.h>
int n,v[100003],pozi,max,maxsir,L[100003],i,j,pmax,t[100003],k,sol[100003];
int main(){
FILE*f=fopen("scmax.in","r");
FILE*g=fopen("scmax.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
L[1]=1;
for(i=2;i<=n;i++){
max=0;
for(j=1;j<=i-1;j++){
if(max<L[j] && v[i]>v[j]){
max=L[j];
pmax=j;
}
}
L[i]=max+1;
t[i]=pmax;
if(L[i]>maxsir){
maxsir=L[i];
pozi=i;
}
}
fprintf(g,"%d\n",maxsir);
i=0;
while(pozi){
//fprintf(g,"%d ",v[pozi]);
sol[++i]=v[pozi];
pozi=t[pozi];
}
for(k=i;k>=1;k--)
fprintf(g,"%d ",sol[k]);
fclose(f);
fclose(g);
return 0;
}