Pagini recente » Cod sursa (job #1555575) | Cod sursa (job #2527625) | Cod sursa (job #572730) | Cod sursa (job #332588) | Cod sursa (job #785229)
Cod sursa(job #785229)
#include<stdio.h>
#include<fstream>
using namespace std;
#define MAXN 5002
int v[ MAXN ], s[ MAXN ], end [ MAXN ];
int n, i, j, k, res, MAX, nr, ok;
int main()
{
ifstream f("secv.in");
f >> n;
for(i = 1; i <= n; ++i)
{
f >> v[i], ok = 1;
for(j = 1; j < i; ++j)
if(v[j] == v[i])
{
ok = 0;
break;
}
nr += ok;
}
f.close();
s[n] = 1, end[n] = n;
for(i = n - 1; i >= 1; --i)
{
MAX = 0;
for(j = i + 1; j <= n; ++j)
if(v[j] > v[i] && s[j] > MAX)
MAX = s[j], k = j;
s[i] = MAX + 1;
if(!MAX)
end[i] = i;
else
end[i] = end[k];
if(s[i] == nr && end[i] - i + 1 > res)
res = end[i] - i + 1;
}
FILE *g = fopen("secv.out", "w");
fprintf(g, "%d\n", res);
fclose(g);
return 0;
}