Cod sursa(job #2092182)

Utilizator btudorBazac Tudor btudor Data 21 decembrie 2017 11:40:05
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdio>

using namespace std;

int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,i,sc,scc,smax,x,y,ic=1,imax=1,sfmax=1,st,smin,imin=1,sfmin=1;
    scanf("%d",&n);
    scanf("%d %d",&x,&y);
    if(y==0)
      x=-x;
    st=x;
    sc=x;
    scc=x;
    smax=x;
    smin=x;
    for(i=2;i<=n;i++)
    {
      scanf("%d %d",&x,&y);
      if(y==0)
        x=-x;
      st=st+x;
      if(sc+x>x)
        sc=sc+x;
      else
      {
        sc=x;
        ic=i;
      }
      if(sc>smax)
      {
        smax=sc;
        imax=ic;
        sfmax=i;
      }
      if(scc+x<x)
        scc=scc+x;
      else
      {
        scc=x;
        ic=i;
      }
      if(scc<smin)
      {
        smin=scc;
        imin=ic;
        sfmin=i;
      }
    }
    if(smax>st-smin)
    {
      x=sfmax-imax+1;
      printf("%d %d %d\n",smax,imax,x);
    }
    else
    {
      x=sfmin;
      sfmin=imin-1;
      imin=x+1;
      sfmin=n+sfmin-imin+1;
      x=st-smin;
      printf("%d %d %d\n",x,imin,sfmin);
    }
    return 0;
}