Pagini recente » Monitorul de evaluare | Diferente pentru problema/dsip intre reviziile 3 si 2 | Cod sursa (job #3308908) | Borderou de evaluare (job #3001517) | Cod sursa (job #595129)
Cod sursa(job #595129)
#include<stdio.h>
FILE *fin=fopen("scmax.in","r");
FILE *fout=fopen("scmax.out","w");
int l[100001], t[100001],n,i,j,poz,max,maxim,pozmax,v[100001];
void drum(int p){
if(p){
//fprintf(fout,"%d ",v[p]);
drum(t[p]);
fprintf(fout,"%d ",v[p]);
}
else fprintf(fout,"%d\n",maxim);
}
int main(){
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
for(i=1;i<=n;i++){
max=0;
poz=0;
for(j=1;j<=i-1;j++){
if(l[j]>max && v[i]>v[j]){
max=l[j];
poz=j;
}
}
l[i]=max+1;
if(maxim<l[i]){
maxim=l[i];
pozmax=i;
}
t[i]=poz;
}
//fprintf(fout,"%d",maxim);
drum(pozmax);
return 0;
}