Pagini recente » Cod sursa (job #2168651) | Cod sursa (job #3250692) | Cod sursa (job #3160558) | Cod sursa (job #2350099) | Cod sursa (job #556368)
Cod sursa(job #556368)
#include <stdio.h>
FILE *f=fopen ("scmax.in", "r");
FILE *g=fopen ("scmax.out", "w");
int n,i,k,poz;
int a[100001],r[100001],q[100001];
void citire(void) {
int i;
fscanf (f, "%d", &n);
for (i=1;i<=n;i++)
fscanf (f, "%d", &a[i]);
}
int lis() {
int max=0,i,j;
for (i=1;i<=n;i++)
q[i]=1;
for (i=2;i<=n;i++)
for (j=1;j<i;j++)
if (a[i]>a[j] && q[i]<q[j]+1 )
{
q[i]=q[j]+1;
r[i]=j;
}
for (i=1;i<=n;i++)
if (max<q[i])
{
max=q[i];
poz=i;
}
return max;
}
void tip(int k) {
if (k)
{
tip(r[k]);
fprintf (g, "%d ", a[k]);
}
}
int main() {
citire();
fprintf (g, "%d\n", lis());
tip(poz);
return 0;
}