Pagini recente » Cod sursa (job #964313) | Cod sursa (job #437710) | Cod sursa (job #2405588) | Cod sursa (job #2569567) | Cod sursa (job #2496849)
#include <bits/stdc++.h>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100],n,dp[100];
void Read()
{
f>>n;
for(int i = 1; i <= n; i++)
f>>v[i];
}
void Solve()
{
int i,j;
for(i=1;i<=n;i++)
{
dp[i] = 1;
for(j=1;j<=i;j++)
if(v[j]<v[i])
{
if(dp[j]+1 > dp[i])
dp[i] = dp[j]+1;
}
}
int mx = 0;
int poz_sol=1;
vector <int> sol;
for(i=1;i<=n;i++)
{
if(mx<dp[i])
mx = dp[i];
}
for(i=n;i>=1;i--)
if(dp[i]==mx)
{
sol.push_back(v[i]);
mx--;
}
g<<sol.size()<<endl;
for(i=sol.size()-1;i>=0;i--)
g<<sol[i]<<" ";
}
int main()
{
Read();
Solve();
}