Pagini recente » Cod sursa (job #2041772) | Cod sursa (job #3122694) | Cod sursa (job #1467913) | Cod sursa (job #979267) | Cod sursa (job #1133715)
#include <fstream>
#include <iostream>
using namespace std;
int v[100000],n,i,L[100000],maxi,mx,k,t;
int main(){
ifstream f("scmax.in");
f>>n;
for(i=1;i<=n;i++) f>>v[i];
L[n]=1; //subsir maxim de lung 1
for(k=n-1;k>0;k--)
{mx=0;
for(i=k+1;i<=n;i++)
if(v[i]>v[k] && L[i]>mx)
mx=L[i];
L[k]=mx+1;
if(L[k]>maxi)
{maxi=L[k];
t=k;}
}
f.close();
ofstream g("scmax.out");
g<<maxi;
//afisarea subsirului
g<<endl<<v[t]<<' ';
for(i=t+1;i<=n;i++)
if ((v[i]>=v[t]) && (L[i]==maxi-1))
{g<<v[i]<<' ';
maxi--;}
return 0;
}