Thứ Ba, 3 tháng 5, 2022

DOIDAU C++

#include <bits/stdc++.h>
using namespace std;
int n,l,u,a[10000000],f[100000],g[10000005],max1,max2;
void nhap()
{
    scanf("%d %d %d",&n,&l,&u);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
}
void xuli()
{
    long long maxx,res;
    f[1]=1;g[1]=1;
    for(int i=2;i<=n;i++)
    {
        maxx=0;
        for(int j=1;j<=i-l;j++)
        {
            if(i-j>=l&&a[i]>a[j]&&a[i]-a[j]<=u&&g[j]>maxx)
                maxx=g[j];
        }
        f[i]=maxx+1;

        maxx=0;
        for(int j=1;j<=i-l;j++)
        {
            if(i-j>=l&&a[i]<a[j]&&a[j]-a[i]<=u&&f[j]>maxx)
                maxx=f[j];
        }
        g[i]=maxx+1;
    }
    res=0;
    for(int i=1;i<=n;i++)
    {
        if(f[i]>res) res=f[i];
        if(g[i]>res) res=g[i];
    }
    cout<<res;
}

int main()
{
    freopen("doidau.inp","r",stdin);
    freopen("doidau.out","w",stdout);
    nhap();
    xuli();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.