Cod sursa(job #2115923)

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

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

int n, culoare, minim, poz_minim, maxim, poz_f, poz;
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];

        if( minim > v[i] )
        {
            minim = v[i];
            poz_minim = i;
        }
    }

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


    while( v[poz_minim] < 0 )
        poz_minim++;

    maxim = v[poz_minim];
    poz_f = poz = poz_minim;
    for( int i = poz_minim + 1; i <= n + poz_minim - 2; i++ )
        if( v[i] < v[i] + maxim )
            maxim = v[i] + maxim, poz_f++;
        else
            maxim = v[i], poz = poz_f = i;

    out<<maxim<<" "<<poz<<" "<<poz_f - poz + 1;

    return 0;
}