Cod sursa(job #485404)
Utilizator | Data | 18 septembrie 2010 11:54:01 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.37 kb |
#include <cstdio>
using namespace std;
int a[100020],s1[100020],s2[100020],n,maxi,l,k1,k[500];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
int j=0;
for (int i=0;i<n;i++)
{
int max=200000000;
for (int j=0;j<=1;j++)
{
if(s1[j]<max)
{
max=s1[j];
maxi=j;
}
}
if(max==200000000)
{
s1[l]=a[i];
s2[i]=l;
l++;
}
else
{
s1[maxi]=a[i];
s2[i]=maxi;
}
}
printf("%d\n",l);
l--;
for(int i=n-1;i>=0;i--)
if(s2[i]==l)
{
k[k1]=a[i];
k1++;
l--;
}
for(int i=k1-1;i>=0;i--)
{
printf("%d",k[i]);
}
return 0;
}