Mai intai trebuie sa te autentifici.
Cod sursa(job #2572243)
Utilizator | Data | 5 martie 2020 12:15:47 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <stdio.h>
#include <stdlib.h>
#define N 1024
int n, v[N], l[N], pred[N], l[N];
FILE *in, *out;
void subsir(int p)
{
if(pred[p]!=-1)
{
subsir(pred[p]);
}
fprintf(out, "%d", v[p]);
}
int main()
{
in=fopen("scmax.in", "r");
out=fopen("scmax.out", "w");
int i, j, lmax, imax;
fscanf(in, "%d", &n);
for(i=0; i<n; i++)
{
pred[i]=-1;
}
imax=0;
for(i=0; i<n; i++)
{
lmax=0;
for(j=0; j<i; j++)
{
if(v[j]<v[i])
{
if(l[j]>lmax)
{
lmax=l[j];
pred[i]=j;
}
}
}
l[i]=1+lmax;
if(l[i]>l[imax])
{
imax=i;
}
}
fprintf(out, "%d\n", l[imax]);
subsir(imax);
return 0;
}