Pagini recente » Cod sursa (job #620783) | Cod sursa (job #2231814) | Cod sursa (job #2050606) | Cod sursa (job #2762445) | Cod sursa (job #2591956)
#include <fstream>
#include <algorithm>
#include <set>
#include <limits.h>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
const int NMAX = 5003;
int n, a, b[NMAX], c[NMAX], maxi, ind_st;
set<int> nr;
int main()
{
fin >> n;
fill(b + 1, b + n + 1, INT_MAX);
for (int i = 1; i <= n; ++i)
{
fin >> a;
nr.insert(a);
c[i] = lower_bound(b, b + n + 1, a) - b;
if (c[i] > maxi)
{
maxi = c[i];
ind_st = i;
}
b[c[i]] = a;
}
if (maxi != nr.size())
{
fout << "-1\n";
return 0;
}
for (int i = ind_st; i; --i)
{
if (c[i] == maxi)
{
--maxi;
if (maxi == 0)
{
fout << ind_st - i + 1 << "\n";
return 0;
}
}
}
return 0;
}