Cod sursa(job #2229722)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 8 august 2018 00:21:34
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>

using namespace std;

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

int v[400005], n, i, b, p, l, cnt;

long long ssm, m1, m2, m3;

int main()
{
    fin >> n;
    for (i=1; i<=n; i++){
        fin >> v[i] >> b;
        if (b == 0)
            v[i] = -v[i];
        v[i+n] = v[i];
    }
    ssm = v[1];
    m1 = ssm;
    for (i=2; i<2*n; i++){
        if (ssm < 0){
            ssm = v[i];
            cnt = 1;
        }
        else{
            ssm += v[i];
            cnt++;
        }
        if (cnt <= n){
            p = i - cnt + 1;
            l = cnt;
            if  (ssm > m1){
                //fout << cnt << "\n";
                m1 = ssm;
                m2 = p;
                m3 = l;
            }
            else if (ssm == m1){
                if (p < m2){
                    m2 = p;
                    m3 = l;
                }
                else if (p == m2){
                    if (l < m3){
                        m3 = l;
                    }
                }
            }
        }
    }
    fout << m1 << " " << m2 << " " << m3;
    return 0;
}