Pagini recente » Cod sursa (job #101055) | test123 | Cod sursa (job #655635) | Cod sursa (job #2981059) | Cod sursa (job #2197534)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100005],howmany[100005];
int main()
{
int n;
f>>n;
for(int i=1;i<=n;i++)
{
f>>v[i];
}
for(int i=2;i<=n;i++)
{
int j=i;
while(j>2){
j--;
if(v[j]<v[i]){
howmany[i]=howmany[j]+1;
break;
}
}
}
int maxim=-1,poz;
for(int i=1;i<=n;i++)
{
if(howmany[i]>maxim)
{
maxim=howmany[i];
poz=i;
}
}
g<<maxim+1<<'\n';
vector<int> solutia;
int pozaux=poz;
while(maxim!=0&&pozaux>0)
{
pozaux--;
if(v[pozaux]<v[poz]&&maxim==howmany[pozaux]+1)
{
maxim--;
solutia.push_back(v[pozaux]);
//cout<<v[pozaux]<<' ';
}
}
std::reverse(solutia.begin(),solutia.end());
for(int i=0;i<solutia.size();i++)
{
g<<solutia[i]<<' ';
}
g<<v[poz];
return 0;
}