Pagini recente » Cod sursa (job #2550945) | Cod sursa (job #2463887) | Cod sursa (job #2398137) | Cod sursa (job #1173259) | Cod sursa (job #1454291)
#include <iostream>
#include <vector>
#include <utility>
#include <fstream>
#define for0(i,n) for(int i=0; i<n; i++)
#define for1(i,n) for(int i=1; i<=n; i++)
#define pb push_back
#define mp make_pair
#define ALL(v) v.begin(), v.end()
#define V vector<int>
#define VP vector<pair<int, int> >
#define clr(A,x) memset(A, x, sizeof(A))
#define cpy(A,B) memcpy(A, B, sizeof(B))
#define g(s) getline(cin, s)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
const int MAX=100005;
const ull MOD=1000000007;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
int n, v[MAX];
fin>>n;
VP retin;
vector<vector<int> > celelalte(MAX);
for(int i=n; i>=1; i--)
fin>>v[i];
retin.pb(mp(v[1], 1));
celelalte[0].pb(1);
int mmax=1, poz=0;
for(int i=2; i<=n; i++)
{
for(int j=0; j<retin.size(); j++)
{
if(v[i]<retin[j].first)
{
retin[j].first=v[i];
retin[j].second++;
celelalte[j].pb(i);
if(mmax<retin[j].second)
{
mmax=retin[j].second;
poz=j;
}
}
}
}
fout<<mmax<<'\n';
for(int i=celelalte[poz].size()-1; i>=0; i--)
fout<<v[celelalte[poz][i]]<<' ';
fin.close(); fout.close();
return 0;
}