Cod sursa(job #1857720)

Utilizator GhitaVicyorVictor Ghita GhitaVicyor Data 26 ianuarie 2017 16:11:37
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <iostream>
using namespace std;
int v[101],a[101];
int main ()
{
  freopen("problema.in","r",stdin);
  freopen("problema.out","w",stdout);
  int n,i,j,maxi,maxg,poz,pozf,comp;
  scanf("%d",&n);
  for (i=1;i<=n;i++)
    scanf("%d",&v[i]);
  maxg=1;
  a[1]=1;
  for (i=2;i<=n;i++)
  {
    maxi=0;
    for (j=1;j<i;j++)
    {
      if (a[j]>maxi && v[j]<v[i]){
        maxi=a[j];
        poz=j;
      }
    }
    a[i]=maxi+1;
    if (maxg<maxi+1){
      maxg=maxi;
      pozf=poz;
    }
    a[i]=maxi+1;
  }
  printf("%d\n",maxg+1);
  while (a[n]!=maxi)
    n--;
  n++;
  comp=n;
  printf("%d ",v[comp]);
  for (i=n;i>=1;i--)
  {
    for (j=comp;j>=1;j--)
      if (a[j]==a[comp]-1){
        comp=j;
        printf("%d ",v[comp]);
      }
  }
  return 0;
}