Cod sursa(job #2123038)

Utilizator Victor_IonescuVictor Ionescu Victor_Ionescu Data 5 februarie 2018 18:50:44
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include<fstream>

using namespace std;
ifstream f ("buline.in");
ofstream g ("buline.out");
int v[200003],val,semn,n,sumaoptima,sumaint,poz1=1,lgsecv,i,poz2=1,s=0,p1=1,p2=1,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],poz1=i;
         else
            sumaint+=v[i];
          if(sumaint>sumaoptima)
                sumaoptima=sumaint,poz2=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],p1=i;
         else
            si+=v[i];
          if(si>so)
                so=si,p2=i;
   }
   if (s-so*(-1)>sumaoptima)
   {
       poz1=p2+1;
       poz2=p1-1;
       sumaoptima=s-so*(-1);
   }
   g<<sumaoptima<<" "<<poz1<<" ";
   if(poz1>poz2)
      g<<n-poz1+poz2+1;
   else
     g<<poz2-poz1+1;
}