Pagini recente » Rezultatele filtrării | Rezultatele filtrării | Borderou de evaluare (job #2988965) | Rezultatele filtrării | Cod sursa (job #1864296)
#include <bits/stdc++.h>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
const int nMax = 5003;
int dp[nMax], a[nMax];
struct Vectoras{
int val, mn, poz;
};
Vectoras v[nMax];
inline bool cmp(const Vectoras A, const Vectoras B) {
return A.mn < B.mn;
}
int main()
{
int n;
f >> n;
for(int i = 1; i <= n; i++) {
f >> a[i];
}
int mx = 0;
for(int i = 1; i <= n; i++) {
dp[i] = 1;
for(int j = 1; j < i; j++) {
if(a[j] < a[i] && 1 + dp[j] > dp[i]) {
dp[i] = 1 + dp[j];
}
}
if(dp[i] > mx) {
mx = dp[i];
}
}
g << mx << "\n";
/*for(int i = 1; i <= n; i++) {
v[i].val = dp[i];
v[i].mn = a[i];
v[i].poz = i;
}
sort(v + 1, v + n + 1, cmp);
int ceval , start;
for(int i = 1; i <= n; i++) {
if(v[i].mn == mx) {
ceval = v[i].mn;
start = v[i].poz;
break;
}
}
for(int i = )*/
return 0;
}