Pagini recente » Cod sursa (job #2911970) | Cod sursa (job #2327796) | Cod sursa (job #2749092) | Cod sursa (job #484437) | Cod sursa (job #320241)
Cod sursa(job #320241)
#include <stdio.h>
#define DIM 1000
int v[DIM],L[DIM],T[DIM];
int n,i,j,k,t,max,poz;
int main() {
FILE *f = fopen("subsir.in","r");
FILE *g = fopen("subsir.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;
poz = i;
for (j=1; j<i; j++)
if (v[j]<=v[i])
if (L[j]>max) {
max = L[j];
poz = j;
}
L[i] = L[poz] + 1;
T[i] = poz;
}
max = 0;
for (i=1; i<=n; i++)
if (L[i] > max) {
max = L[i];
poz = i;
}
t = poz;
while (t) {
L[++k] = v[t];
t = T[t];
}
fprintf(g,"%d\n",max);
for (i=k; i>=1; i--)
fprintf(g,"%d ",L[i]);
fclose(f);
fclose(g);
return 0;
}