Pagini recente » Cod sursa (job #2793488) | Cod sursa (job #2567317) | Cod sursa (job #215119) | Cod sursa (job #1068291) | Cod sursa (job #2461493)
#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;
}
}
}
}
int sequence=maxx+1;
vector<int> result;
while(sequence)
{
result.push_back(vec[maxindex]);
maxindex=pre[maxindex];
sequence--;
}
out<<maxx+1<<endl;
for(int i=result.size()-1; i>=0; i--)
out<<result[i]<<" ";
}
int main()
{
read();
solve();
}