Thứ Ba, 3 tháng 5, 2022

SZERO C++



#include <bits/stdc++.h>
using namespace std;
 
int n,t;
struct pt
{
    long long gt,cs;
};
pt s[100001];
int a[100006];
 
bool ss(pt u,pt v)
{
    if(u.gt<v.gt) return true;
    if(u.gt>v.gt) return false;
    if(u.cs<v.cs) return true;
    if(u.gt<v.gt) return false;
    return false;
}
 
/*void quickSort(int l, int r)
{
    pt p = s[(l+r)/2];
    int i = l, j = r;
    while (i < j){
        while (ss(s[i],p)==true) i++;
        while (ss(p,s[j])==true) j--;
        if (i <= j){
            swap(s[i],s[j]);
            i++;
            j--;
        }
    }
    if (i < r) quickSort(i, r);
    if (l < j) quickSort(l, j);
}*/
void nhap()
{
    s[0].gt=0;s[0].cs=0;
    cin >> n ;
    for(int i = 1; i <= n; ++i)
    {
        cin >> t ;
        s[i].gt=s[i-1].gt+t;
        s[i].cs=i;
    }
}
 
void xuly()
{
   // quickSort(0,n);
   sort(s,s+1+n,ss);    //xai ham sort co san trong c++
    int k=0,v=0,u=0;
    for(int i = 1;i <= n;++i)
    {
        if(s[i].gt!=s[i-1].gt) k = i;
        if(s[i].cs-s[k].cs>s[v].cs-s[u].cs){
            u=k;v=i;
        }
    }
    if(s[v].cs==0) {cout<<-1;}
    else{
        cout << s[u].cs+1<<" "<<s[v].cs;}
}
int main()
{
   // freopen("szero.inp","r",stdin);
//    freopen("szero.out","w",stdout);
    nhap();
    xuly();
}

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.