Thứ Ba, 3 tháng 5, 2022

PS C++

#include <bits/stdc++.h>
using namespace std;

int n,a[100001],minn[100001];
long long f[100001];

void nhap()
{
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i];
        f[i]=f[i-1]+a[i];
        if (f[i]<f[minn[i-1]]) minn[i]=i;
        else minn[i]=minn[i-1];
    }
    //cout<<f[1]-f[0]<<endl;
}

void xuli()
{
    int l=minn[n],r=n,s=0,t1,t2;
    while (true)
    {
        while (f[r]-f[l]<=0 && l<r) r--;
        if (s<r-l)
        {
            //cout<<l<<" "<<r<<" "<<f[r]-f[l-1]<<endl;
            t1=l+1;
            t2=r;
            s=r-l;
        }
        if (l==0) break;
        l=minn[l-1];
    }
    cout<<t1<<" "<<t2;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    freopen("ps.inp","r",stdin);
    freopen("ps.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.