Cod sursa(job #1098853)
| Utilizator | Data | 5 februarie 2014 12:00:32 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int N,i,j,v[100002],s[100002],lmax,p;
int main()
{
f>>N;
v[0]=200000000;
s[N]=1;
for (i=1; i<=N; ++i)
f>>v[i], s[i]=1;
for (i=N-1; i>0; --i)
for (j=i+1; j<=N; ++j)
if (v[i]<v[j] && s[j]+1>s[i])
{
s[i]=s[j]+1;
if (lmax<s[i])
lmax=s[i], p=i;
}
g<<lmax<<'\n'<<v[p]<<' ';
for (i=p; i<=N; ++i)
if (s[i]==s[p]-1)
g<<v[i]<<' ', p=i;
return 0;
}
