Mai intai trebuie sa te autentifici.
Cod sursa(job #479872)
Utilizator | Data | 25 august 2010 15:14:19 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.72 kb |
#include<iostream.h>
#include<fstream>
using namespace std;
long long v[2000] , l[2000] , n , i , k , maxim , t;
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--)
{
maxim = 0;
for(i = k + 1 ; i <= n ; i++)
if(v[i] > v[k] && l[i] > maxim)
maxim = l[i];
l[k] = 1 + maxim;
}
maxim = l[1];
t = 1;
for(k = 1 ; k <= n ; k++)
if(l[k] > maxim)
{
maxim = l[k];
t = k;
}
g<<maxim<<"\n"<<v[t]<<" ";
for(i = t + 1 ; i <= n ; i++)
if(v[i] > v[t] && l[i] == maxim - 1)
{
g<<v[i]<<" ";
maxim--;
}
return 0;
}