Pagini recente » Cod sursa (job #2226448) | Cod sursa (job #2063133)
#include <bits/stdc++.h>
using namespace std;
ifstream f("subsir2.in");
ofstream g("subsir2.out");
int n,a[5005],l[5005],ilmax,nr,w[5005];
bool valid(int i,int j) {
int k;
for (k=i+1;k<=j-1;k++)
if (a[i]<a[k] && a[k]<a[j])
return 0;
return 1;
}
void solve() {
int i,j,k,nrk;
l[n]=1;
for (i=n-1;i>=1;i--) {
k=n+1;
for (j=i+1;j<=n;j++)
if (a[i]<a[j] && l[j]<k && valid(i,j))
k=l[j];
if (k==n+1) k=0;
l[i]=1+k;
if (l[ilmax]<l[i]) ilmax=i;
}
g<<l[ilmax];
// for (i=1;i<=n;i++)
}
int main() {
int i,j;
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
solve();
return 0;
}