Pagini recente » Cod sursa (job #1595659) | Cod sursa (job #3252911) | Cod sursa (job #459396) | Cod sursa (job #3273517) | Cod sursa (job #3288956)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("subsir2.in");
ofstream fout("subsir2.out");
const int LMAX = 5005;
const int INF = 0x3f3f3f3f;
const ll MOD = 1000000007;
//dp[i] --> lungimea subsirului ... pana la pozitia i
int dp[LMAX], v[LMAX];
int main() {
int n, i, j, x;
fin>>n;
for (i = 1; i <= n; i++) {
fin>>v[i];
}
for (i = 1; i <= n; i++) {
dp[i] = n + 1;
x = -INF;
j = i - 1;
while(j > 0) {
if (v[j] > x && v[j] < v[i]) {
x = v[j];
dp[i] = min(dp[i], dp[j] + 1);
}
j--;
}
if (x == -INF) dp[i] = 1;
}
fout<<dp[n];
fin.close();
fout.close();
return 0;
}