Cod sursa(job #637683)

Utilizator danieladDianu Daniela danielad Data 20 noiembrie 2011 15:56:35
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb

#include<fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,a[100002],l[100002],lm,s,d;
void citire(int &n, int a[]){
  f>>n;
  for(int i=1;i<=n;i++)
  f>>a[i];
}

void rez(int n){
  int max;
  l[n]=1;
  lm=1;
  for(int i=n-1;i>=1;i--){
    max=0;
    for(int j=i+1;j<=n;j++)
    if(l[j]>max&&(a[i]<a[j]))
    max=l[j];
    l[i]=max+1;
    if(l[i]>lm)
    lm=l[i];
  }
}

void afisare(int n){
  s=d=1;
  while(lm!=0){
    while(l[d]!=lm)d++;
    g<<a[d]<<" ";
    lm--;
    s=d;
  }
}
int main(){
  citire(n,a);
  rez(n);
  g<<lm<<endl;
  afisare(n);
  return 0;
}