Cod sursa(job #2507103)

Utilizator Tibi_SabauSabau Tiberiu Tibi_Sabau Data 9 decembrie 2019 17:15:52
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include<stack>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,j,n,v[100001],v2[100001],mx,tati[100001],nod;
stack<int>s;
int main()
{f>>n;
for(i=1;i<=n;i++)
    f>>v[i];
for(i=1;i<=n;i++)
{
    v2[i]=1;mx=0;
for(j=i-1;j>=1;j--)
{
    if(v[i]>v[j])
   {
       if(mx<v2[j]+1)
       {
           v2[i]=v2[j]+1;
           mx=v2[i];
           tati[i]=j;
       }
   }
}
}
g<<*max_element(v2+1,v2+n+1)<<endl;
mx=-1;
for(i=1;i<=n;i++)
    if(v2[i]>mx)
{
    mx=v2[i];
    nod=i;
}
while(nod!=tati[nod])
{
    s.push(v[nod]);
    nod=tati[nod];
}
while(!s.empty())
{
    g<<s.top()<<" ";
    s.pop();
}
    return 0;
}