Pagini recente » Cod sursa (job #1484426) | Cod sursa (job #1236537) | Cod sursa (job #1938606) | Cod sursa (job #1017402) | Cod sursa (job #2000097)
#include <bits/stdc++.h>
using namespace std;
FILE *F = fopen("secv.in", "r"), *G = fopen("secv.out", "w");
int k, u, p, n, w[5001], v[5001], m[5001][5001], maxx, Max;
int main()
{
fscanf(F, "%d ", &n);
for(int i = 1; i <= n; ++ i) fscanf(F, "%d ", &v[i]);
m[1][0] = 1; m[1][1] = v[1];
w[1] = 1;
for(int i = 2; i <= n; ++ i)
{
maxx = -1; k = 0;
for(int j = i-1; j > 0; -- j)
if(m[j][0] > maxx && m[j][m[j][0]] < v[i]) k = j, maxx = m[j][0];
for(int j = 1; j <= m[k][0]; ++j)
m[i][j] = m[k][j];
!k ? w[i] = i : w[i] = w[k];
m[i][0] = m[k][0]+1; m[i][m[k][0]+1]=v[i];
if(m[k][0]+1 > Max) Max = m[k][0]+1, p = w[i], u = i;
}
fprintf(G, "%d", u-p+1);
return 0;
}