Cod sursa(job #805679)
Utilizator | Cosmin Ionut cosminionut | Data | 31 octombrie 2012 21:44:24 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001],lung[100001],n,lmax;
int main()
{
f>>n;
for(int jm=1;jm<=n;jm++) f>>v[jm];
lung[n]=1;
int i;
for(i=n-1;i>=1;i--)
{for(int j=i+1;j<=n;j++)
if(v[i]<v[j])
if(lung[i]<lung[j]) lung[i]=lung[j];
lung[i]++;
if(lmax<lung[i]) lmax=lung[i];
}
g<<lmax<<'\n';
for(i=1;i<=n;i++)
if(lmax>=1)
{if(lung[i]==lmax) {g<<v[i]<<" ";lmax--;}
}
else
break;
return 0;
}