Pagini recente » Monitorul de evaluare | Cod sursa (job #2701962) | Borderou de evaluare (job #2038049) | Cod sursa (job #796133) | Cod sursa (job #534611)
Cod sursa(job #534611)
#include<stdio.h>
#define N 5001
#define MAX_IM -1000000
using namespace std;
long v[N],best[N],sol[N];
int maxim=0;
int n;
void citire()
{
freopen("subsir2.in","r",stdin);
scanf("%ld",&n);
for (int i=1;i<=n;i++)
scanf("%d",&v[i]);
}
void vector()
{
maxim=0;
best[1]=1;
for(int i=2;i<=n;i++)
{
int max=MAX_IM;
for(int j=1;j<i;j++)
{
if(max<best[j]&&v[j]<v[i])
max=best[j];
}
best[i]=max+1;
if(maxim<best[i])
maxim=best[i];
}
}
void afisare()
{
freopen("subsir2.out","w",stdout);
printf("%d\n",maxim);
for(int i=1;i<=maxim;i++)
printf("%d ",sol[i]);
/*
printf("\n");
for(int i=1;i<=n;i++)
printf("%d ",best[i]);
*/
}
int main()
{
citire();
vector();
afisare();
return 0;
}