Pagini recente » Cod sursa (job #1242074) | Cod sursa (job #1288092) | Cod sursa (job #377089) | Cod sursa (job #2142671) | Cod sursa (job #2282069)
#include <iostream>
#include <fstream>
using namespace std;
int a[100001],n,mx[100001],l,k;
///int ord[100001];
ifstream in ("scmax.in");
ofstream out ("scmax.out");
void dbg()
{
int i;
cout<<endl;
for(i=1; i<=n; i++)
cout<<mx[i]<<" ";
cout<<endl;
}
int main()
{
int i;
in>>n;
for(i=1; i<=n; i++)
in>>a[i];
i=n;
mx[i]=1;
///ord[i]=n;
for(i=n-1; i>0; i--)
{
mx[i]=1; ///ord[i]=i;
for(int j=i+1; j<=n; j++)
{
if(a[j]>a[i]&&mx[i]<=mx[j])
{
mx[i]=1+mx[j];
/// ord[i]=j;
}
}
if(l<mx[i])
{
l=mx[i];
k=i;
}
}
out<<mx[k]<<"\n";//dbg();
out<<k<<" ";
for(i=k+1; i<=n; i++)
{
if(mx[i]==mx[k]-1)
{
if(a[i]!=a[k])
{
out<<a[i]<<" ";
k=i;
}
}
}
return 0;
}