Cod sursa(job #2228525)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 4 august 2018 03:08:01
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;

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

int n, i, a, v[400005];

void ssm ()
{
    int i, i1, i2, l = 0, cnt = 1;
    long long sum, m;
    sum = m = v[1];
    for (i=2; i<2*n; i++){
        if (sum < 0){
            sum = v[i];
            cnt = 1;
        }
        else{
            sum += v[i];
            cnt++;
        }
        if (sum > m){
            if (l + 1 > n)
                break;
            i1 = i - cnt + 1;
            i2 = i;
            l = cnt;
            m = sum;
        }
        else if (sum == m){
            if (i - cnt + 1 < i1){
                i1 = i - cnt + 1;
            }
            else if (i - cnt + 1 == i1){
                if (i - i1 + 1 < l){
                    l = i - i1 + 1;
                }
            }
        }
    }
    fout << m << " " << i1 << " " << l;
}

int main()
{
    fin >> n;
    for (i=1; i<=n; i++){
        fin >> v[i] >> a;
        if (a == 0)
            v[i] = -v[i];
        v[i+n] = v[i];
    }
    ssm();
    return 0;
}