Pagini recente » Cod sursa (job #1544967) | Cod sursa (job #1951926) | Cod sursa (job #2262166) | Cod sursa (job #2025625) | Cod sursa (job #2466368)
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
int d[5010],a[5010],i,j,n,m,min1,max1;
set<int> h;
ifstream f("secv.in");
ofstream g("secv.out");
int main()
{
min1 = 2000000010;
max1 = -1;
f>>n;
for(i=1;i<=n;i++){
f>>a[i];
h.insert(a[i]);
if(min1>a[i])
min1 = a[i];
if(max1<a[i])
max1 = a[i];
}
int numD = h.size();
if(numD == 1){
g<<1;
return 0;
}
for(i=1;i<=n;i++){
for(j=i-1;j>=1;j--){
if(a[i]>a[j]){
d[i] = max(d[i],d[j]+1);
if(max1 == a[i] && d[i] == numD - 1){
int t = i;
int nr = 0;
int prc = d[i];
while(a[t] != min1 || prc != 0){
t--;
if(d[t] == prc - 1)
prc = d[t];
nr++;
}
g<<nr + 1;
return 0;
}
}
}
}
g<<-1;
}