Cod sursa(job #2115834)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 27 ianuarie 2018 10:32:18
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;

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

int n, culoare, maxim, max_final, p, poz, l;
int v[400005];

int main()
{
    in>>n;
    for( int i = 1; i <= n; i++ )
    {
        in>>v[i]>>culoare;
        if( culoare == 0 )
            v[i] = (-1)*v[i];
    }

    for( int i = 1; i < n; i++ )
        v[n + i] = v[i];

    for( int i = 1; i <= n; i++ )
    {
        maxim = v[i];
        p = i;
        for( int j = i + 1; j <= n + i - 1; j++ )
        {
            if( v[j] < v[j] + maxim )
                maxim = v[j] + maxim;
            else
                maxim = v[j], p = j;

            if( max_final < maxim )
            {
                max_final = maxim;
                poz = p;
                l = j - p + 1;
            }
        }
    }

    out<<max_final<<" "<<poz<<" "<<l;

    return 0;
}