Cod sursa(job #2116721)

Utilizator maria15Maria Dinca maria15 Data 27 ianuarie 2018 21:26:53
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

int n, i, maxim = -12000, suma, sol1, p, L=1, m, j;
int culoare, nr, s[400005];

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

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>nr>>culoare;
        if(culoare == 0)
            s[i] = nr*(-1);
        else
            s[i] = nr;
    }
    m = n+1;
    s[m] = s[1];
    for(j=1;j<=n;j++){
        suma = s[j];
        p = j;
        for(i=j+1;i<=n+j-1;i++){
            if(suma >= 0)
                suma += s[i];
            else
                suma = s[i], p = i;
            if(suma > maxim && i-p+1 <= n){
                maxim = suma;
                sol1 = p;
                L = i-p+1;
                if(sol1 > n)
                    sol1 %= n;;
            }
        }
        s[n+j] = s[j];
    }
    fout<<maxim<<" "<<sol1<<" "<<L;
    return 0;
}