Cod sursa(job #921583)

Utilizator The_Black_HunterBrehuescu Roland Cristian The_Black_Hunter Data 21 martie 2013 09:08:25
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#define DIM 100001
using namespace std;
FILE *f,*g;
int a[100001], lung[100001],  n, i, j, maxi, poz, k, v[100001];
int main()
{
    f=fopen("scmax.in","r");
    g=fopen("scmax.out","w");
    fscanf(f,"%d",&n);
    for(i=1; i<=n; i++)
        {
            maxi=0;
            fscanf(f,"%d",&a[i]);
            for(j=1; j<i; j++)
            if(a[j]<a[i]&&lung[j]>maxi) { lung[i]=lung[j]; maxi=lung[j]; }
            lung[i]++;
        }
    maxi=0;
    for(i=1; i<=n; i++)
    if(lung[i]>maxi) { maxi=lung[i]; poz=i; }
    fprintf(g,"%d\n",maxi);
    for(i=poz; i>=1; i--)
    if(lung[i]==maxi&&a[i]<=a[poz])
        {
            v[++k]=a[i];
            poz=i;
            maxi--;
        }
    for(i=k; i>=1; i--)
    fprintf(g,"%d ",v[i]);
    fclose(f);
    fclose(g);
    return 0;
}