Pagini recente » Cod sursa (job #1286504) | Cod sursa (job #1175011) | Cod sursa (job #972461) | Cod sursa (job #2875997) | Cod sursa (job #1860931)
/**
code by purplecoder
*/
#include <fstream>
#define maxi(a, b) ( ( a > b ) ? a : b )
using namespace std;
ifstream cin("sclm.in");
ofstream cout("sclm.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;
}