Cod sursa(job #2134274)

Utilizator NaritaandreiCNAINarita Andrei NaritaandreiCNAI Data 17 februarie 2018 20:00:58
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <stdio.h>

using namespace std;
FILE *f,*g;
int n,m;
int v[400002];
void citire()
{   int i,x,y;
    fscanf(f,"%d",&n);
    m=n;
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%d %d",&x,&y);
        if(y==0)
            x*=-1;
        v[i]=x;
    }
    n*=2;
    for(i=m+1;i<=n;i++)
        v[i]=v[i-m];
}
void ssm()
{
    int sum_int=0, suma_optima=-9999999, i,li,lf,poz_int;
   for(i=1;i<=n;i++)
   {
       if(sum_int<0)
        {
            sum_int=v[i];
            poz_int=i;
        }
       else
        sum_int+=v[i];
       if(sum_int>suma_optima && i-poz_int<=m)
       {
           suma_optima=sum_int;
           li=poz_int;
           lf=i;
       }
   }
   fprintf(g,"%d %d %d",suma_optima,li,lf-li+1);
}
int main()
{

    f=fopen("buline.in","r");
    g=fopen("buline.out","w");
    citire();
    ssm();
    fclose(f);
    fclose(g);
    return 0;
}