Pagini recente » Cod sursa (job #2984860) | Cod sursa (job #34930) | Cod sursa (job #1718728) | Cod sursa (job #2264963) | Cod sursa (job #1860933)
/**
code by purplecoder
*/
#include <fstream>
#define maxi(a, b) ( ( a > b ) ? a : b )
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
const int MAX = 100005;
int v[MAX], dp[MAX], n, m, ans;
int main()
{
cin>>n;
for(int i=1; i<=n; ++i)
cin>>v[i];
for(int i=n; i>=1; --i)
{
int maxi = 0;
for(int j=i+1; j<=n; ++j)
if(v[j] >= v[i] and dp[j] > maxi)
maxi = dp[j];
dp[i] = maxi + 1;
if(dp[i] > ans)
ans = dp[i];
}
cout<<ans<<'\n';
int last = 0;
for(int i=1; i<=n; ++i)
{
if(dp[i] == ans and v[i] >= v[last])
{
cout<<i<<' ';
last = i;
ans--;
}
}
return 0;
}