Cod sursa(job #2931191)

Utilizator divadddDavid Curca divaddd Data 30 octombrie 2022 17:16:45
Problema Buline Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#define MAX 400002
using namespace std;
int n,b[MAX],sgn,maxi,st,dr,ultim,s,x;

ifstream fin("buline.in");
ofstream fout("buline.out");

int main()
{
    fin >> n;
    for(int i = 1; i <= n; i++){
        fin >> b[i] >> sgn;
        if(sgn == 0){
            b[i] = -b[i];
        }
    }
    for(int i = n+1; i <= 2*n; i++){
        b[i] = b[i-n];
    }
    n = 2*n;
    for(int i = 1; i <= n; i++){
        b[i] += b[i-1];
    }
    for(int i = 1; i <= n; i++){
        for(int l = 1; l <= n/2; l++){
            /// i, i+1, i+2, ..., i+l-1
            int sum = b[i+l-1]-b[i-1];
            if(sum > maxi){
                maxi = sum;
                st = i;
                dr = l;
            }
        }
    }
    fout << maxi << " " << st << " " << dr;
    return 0;
}