Cod sursa(job #2391230)
Utilizator | Girbovan Robert Luca BlueLuca888 | Data | 28 martie 2019 18:42:55 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 15 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.35 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int n, v[100001], w, l, c, k, st, dr, lsol;
int main (){
fin>>n;
fin>>c;
w=1;
v[w]=c;
for(int i=2; i<=n; i++){
fin>>k;
if(k != c){
w++;
v[w]=k;
}
c=k;
}
l=1;
lsol=0;
for(int i=2; i<=n; i++){
if(v[i] > v[i-1])
l++;
else{
if(l > lsol){
lsol=l;
dr=i-1;
st=i-l;
}
l=1;
}
}
if(l > lsol){
lsol=l;
dr=n-1;
st=n-l;
}
l=1;
for(int i=n-1; i>=1; i--){
if(v[i] > v[i+1])
l++;
else{
if(l > lsol){
lsol=l;
dr=i+l;
st=i+l;
}
l=1;
}
}
if(l > lsol){
lsol=l;
dr=n;
st=n-l+1;
}
fout<<lsol<<"\n";
for(int i=st; i<=dr; i++)
fout<<v[i]<<" ";
return 0;
}