Pagini recente » Cod sursa (job #2749630) | Cod sursa (job #2351985) | Cod sursa (job #2442983) | Cod sursa (job #3217088) | Cod sursa (job #2461486)
#include<bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int vec[100000],n;
int vals[100000];
int pre[1000000];
void read()
{
in>>n;
for(int i=0; i<n; i++)
in>>vec[i];
}
void solve()
{
int maxx=-1;
int maxindex=0;
for(int i=0; i<n-1; i++)
{
for(int k=i+1; k<n; k++)
{
if(vec[i]<vec[k])
{
if(vals[i]+1>vals[k])
{
vals[k]=vals[i]+1;
pre[k]=i;
}
if(maxx<vals[k])
{
maxx=vals[k];
maxindex=k;
}
}
}
}
vector<int> result;
while(maxindex)
{
result.push_back(vec[maxindex]);
maxindex=pre[maxindex];
}
out<<maxx+1<<endl;
for(int i=maxx; i>=0; i--)
out<<result[i]<<" ";
}
int main()
{
read();
solve();
}