Cod sursa(job #2151137)
| Utilizator | Data | 4 martie 2018 09:52:20 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001], s[100001], lu[100001], t[100001], n, lmax, i, j, m;
int main(){
f>>n;
for(i=0;i<n;i++){
f>>v[i];
j=1;
while(s[j]<v[i]&&j<=lmax)
j++;
s[j]=v[i];
lu[i]=j;
if (j>lmax)
lmax=j;
}
g<<lmax<<'\n';
m=lmax;
for (i=n;i>=0;i--){
if (lu[i]==lmax)
t[lmax--]=v[i];
}
for (i=1;i<=m;i++)
g<<t[i]<<" ";
return 0;
}
