Pagini recente » Cod sursa (job #2784099) | Cod sursa (job #2575406) | Cod sursa (job #1043308) | Cod sursa (job #2715558) | Cod sursa (job #2907111)
#include <fstream>
#include <iostream>
#define max(a, b) (a) > (b) ? (a) : (b)
using namespace std;
int Max_Val(int* arr, unsigned len)
{
int mx = arr[0];
for (unsigned i = 1; i < len; i++)
if (arr[i] > mx) mx = arr[i];
return mx;
}
int main()
{
ifstream fin("scmax.in");
ofstream fout("scmax.out");
unsigned N, i, j;
int* a, * DP, mx, mx_len;
fin >> N;
a = (int*)malloc(N * sizeof(int));
DP = (int*)malloc(N * sizeof(int));
for (i = 0; i < N; i++) fin >> a[i];
for (i = 0; i < N; ++i)
{
mx = 1;
for (j = 0; j < i; ++j)
if (a[j] < a[i] && DP[j] + 1 > mx) mx = DP[j] + 1;
DP[i] = max(1, mx);
}
mx_len = Max_Val(DP, N);
cout << mx_len;
fin.close(); fout.close();
free(a); free(DP);
return 0;
}