Pagini recente » Cod sursa (job #2792967) | Cod sursa (job #1864426) | Cod sursa (job #2945588) | Cod sursa (job #2650065) | Cod sursa (job #2148417)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[100001],lung[100001],s[100001];
int main()
{
int n,ns,pmax = 1;
fin>>n;
for(int i=1; i<=n; i++) fin>>a[i];
for(int i=1; i<=n; i++)
{
lung[i] = 0;
for(int j=1; j<=i-1; j++)
{
if(a[j] < a[i])
if (lung[j] > lung[i]) lung[i] = lung[j];
}
lung[i]++;
if (lung[i] > lung[pmax])
{
pmax = i;
}
//fout << lung[i] << " ";
}
//fout << "\n";
ns=0;
s[++ns]=pmax;
int k=pmax-1;
while(k)
{
if(a[k]<a[s[ns]]&&lung[k]==lung[s[ns]]-1) s[++ns]=k;
k--;
}
fout<<lung[pmax]<<'\n';
for(int i=lung[pmax]; i>=1; i--)
fout<<a[s[i]]<<' ';
return 0;
}
///3
///12 15 19