Cod sursa(job #3165763)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 6 noiembrie 2023 21:23:34
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
int n,i,j,v[200009],st,sMax=INT_MIN,sMin=INT_MAX,s,sum,stMin,drMin,stMax,drMax;
bool t;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>v[i]>>t;
        if(!t)
            v[i]*=(-1);
        sum+=v[i];
    }
    s=v[1];
    stMax=drMax=st=1;
    for(i=2;i<=n;i++)
    {
        if(s+v[i]>=v[i])
            s+=v[i];
        else
            s=v[i],st=i;
        if(s>sMax)
        {
            sMax=s;
            stMax=st;
            drMax=i;
        }
    }
    //cout<<sMax<<" "<<stMax<<" "<<drMax<<'\n';
    s=v[1];
    stMin=stMin=st=1;
    for(i=2;i<=n;i++)
    {
        if(s+v[i]<=v[i])
            s+=v[i];
        else
            s=v[i],st=i;
        if(s<sMin)
        {
            sMin=s;
            stMin=st;
            drMin=i;
        }
    }
    //cout<<sMin<<" "<<stMin<<" "<<drMin;
    if(sMax>sum-sMin)
        cout<<sMax<<" "<<stMax<<" "<<drMax-stMax+1;
    else
        cout<<sum-sMin<<" "<<drMin+1<<" "<<stMin-1+n-drMin;
    return 0;
}