Pagini recente » Cod sursa (job #3179936) | Cod sursa (job #2965757) | Cod sursa (job #724679) | Cod sursa (job #829133) | Cod sursa (job #2464658)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int n,x,v[5010],d[5010];
int main()
{
f>>n;
int max1 = -1;
for(int i=1;i<=n;i++){
f>>v[i];
if(max1<v[i]){
max1 = v[i];
}
}
for(int i=1;i<=n;i++){
for(int j=i-1;j>=1;j--){
if(v[j] < v[i]){
d[i] = max(d[i],d[j]+1);
}
}
}
int maxNr = 0;
int inde;
for(int i=1;i<=n;i++){
if(v[i] == max1 && d[i] == max1-1){
inde = i;
int j = i-1;
int nr = 0;
int pri = d[i];
while(pri != 0){
if(d[j] == pri - 1){
pri = d[j];
}
nr++;
j--;
}
maxNr = max(maxNr,nr);
break;
}
}
maxNr++;
for(int i=n;i>=1;i--){
if(max1 == v[i]){
maxNr = maxNr + (i-inde);
break;
}
}
g<<maxNr;
}