Cod sursa(job #2123061)

Utilizator vergilius_beberindeie virgil vergilius_be Data 5 februarie 2018 19:15:35
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include<fstream>

using namespace std;
ifstream f ("buline.in");
ofstream g ("buline.out");
int v[200003],val,semn,n,sumaoptima,sumaint,pi,i,s=0,p1=1,p2=1,poz_int,li,lf,li1,lf1,si=0,so=-2000000000;
int main()
{
   f>>n;
   for(i=1;i<=n;i++)
      {

         f>>v[i]>>semn;
         if(semn==0)
            v[i]=v[i]*(-1);
      }
   //subsecventa de suma maxima
   for (i=1;i<=n;i++)
   {
       if (sumaint < 0)
            sumaint = v[i], poz_int = i;
        else
            sumaint += v[i];
        if (sumaoptima < sumaint)
            sumaoptima = sumaint, li = poz_int, lf = i;
    }
   //subsecventa de suma minima
   p1=p2=1;
   for(i=1;i<=n;i++)
   {
       s+=v[i];
       v[i]=v[i]*(-1);
       if(si<0)
            si=v[i],pi=i;
         else
            si+=v[i];
          if(si>so)
                so=si,li1=pi,lf1=i;
   }
   if (s-so*(-1)>sumaoptima)
   {
       li=lf1+1;
       lf=li1-1;
       sumaoptima=s-so*(-1);
   }
   g<<sumaoptima<<" "<<li<<" ";
   if(li>lf)
      g<<n-li+lf+1;
   else
     g<<lf-li+1;
}