Pagini recente » Cod sursa (job #2343327) | Cod sursa (job #2546361) | Cod sursa (job #2447169) | Cod sursa (job #3303536) | Cod sursa (job #1465930)
#include <cstdio>
using namespace std;
int sol[5005], bf[5005], v[5005];
int n, i, j, p, s, min;
int main ()
{
freopen ("subsir2.in", "r", stdin);
freopen ("subsir2.out", "w", stdout);
scanf ("%d",&n);
for (i=1; i<=n; ++i)
scanf ("%d", &v[i]);
for (i=n; i>0; --i)
{
min = 11111111;
s = min;
for (j=i+1; j<=n; ++j)
if (v[j]>=v[i] && v[j]<min)
{
min = v[j];
if (sol[j] <= s)
s = sol[j], p=j;
}
if (min = 11111111)
sol[i] = 1;
else
sol[i] = sol[p]+1, bf[i]=p;
}
min = sol[1], p=1, j=v[1];
for (i=2; i<=n; ++i)
if (v[i] < j)
{
j = v[i];
if (sol[i] <= min)
min = sol[i], p=i;
}
printf ("%d\n%d", min, p);
while (--min)
{
p = bf[p]; printf("%d", p);
}
return 0;
}