Cod sursa(job #683117)
Utilizator | Stircu Daniela Kaara333 | Data | 20 februarie 2012 00:04:37 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<fstream>
using namespace std;
long long v[100001], l[100001],m,k,i,t,n;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
l[n]=1;
for(k=n-1; k>=1; k--)
{
m=0;
for(i=k+1; i<=n; i++)
if(v[i]>v[k] && l[i]>m)
{
m=l[i];
}
l[k]=1+m;
}
m=l[1]; t=1;
for(i=1; i<=n; i++)
if(l[i]>m)
{
m=l[i];
t=i;
}
g<<m<<endl<<v[t]<<' ';
for(i=t+1; i<=n; i++)
if(v[i]>v[t] && l[i]==m-1)
{
g<<v[i]<<' ';
m--;
}
}