Cod sursa(job #3236879)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 3 iulie 2024 13:29:54
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb

#include <fstream>
#include <vector>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
int n,maxi,s1,s2,start,final;
vector<int> A;
bool ok;
int total;
int l1,l2;
int main()
{
    cin>>n;
    A.resize(n+1);
    for(int i=1;i<=n;i++)
    {
        cin>>A[i]>>ok;
        if(!ok)
          A[i]=A[i]*-1;
        total=total+A[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(s1<0)
        {
          s1=A[i];
          l1=1;
        }
        else
        {
         s1=s1+A[i];
         l1++;
        }
        if(s2<0)
        {
          s2=-A[i];
          l2=1;
        }
        else
        {
         s2=s2-A[i];
         l2++;
        }
        if(s1>maxi)
        {
            maxi=s1;
            start=i-l1+1;
            final=l1;
        }
        if(total+s2>maxi)
        {
            maxi=total+s2;
            start=i+1;
            final=n-l2;
        }
    }
    cout<<maxi<<" "<<start<<" "<<final;
    return 0;
}