Pagini recente » Cod sursa (job #623673) | Cod sursa (job #2627627) | Cod sursa (job #3231835) | Cod sursa (job #2780709) | Cod sursa (job #3241862)
#include <fstream>
#include <vector>
#include <map>
#include <algorithm>
#include <cassert>
#define ll long long
using namespace std;
const int NMAX = 5000;
int d[NMAX + 1];
int v[NMAX + 1];
signed main()
{
ifstream cin("subsir2.in");
ofstream cout("subsir2.out");
int n, i, j;
cin >> n;
for (i = 1; i <= n; i++)
cin >> v[i];
for (i = 1; i <= n; i++)
{
int mn = n + 3;
int mx = -1e7;
for (j = i - 1; j >= 1; j--)
if (v[j] <= v[i] and v[j] > mx)
{
mn = min(mn, 1 + d[j]);
mx = max(mx, v[j]);
}
if (mn == n + 3)
mn = 1;
d[i] = mn;
}
int mx = -1e7;
int ans = n + 3;
for (i = n; i >= 1; i--)
if (v[i] > mx)
{
ans = min(ans, d[i]);
mx = v[i];
}
cout << ans;
}