Cod sursa(job #1263283)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 14 noiembrie 2014 13:09:11
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>

using namespace std;

#define DIM 400002

FILE *fin = fopen("buline.in","r");
FILE *fout = fopen("buline.out","w");

int i, n, nr, tip, v[DIM], sum, bst, ip, jp;

int main() {
    fscanf(fin, "%d", &n);

    for(i = 1;i <= n;i++) {
        fscanf(fin, "%d %d", &nr, &tip);

        if(tip == 0) {
            tip--;
        }

        v[i] = v[i + n] = tip * nr;
    }

    sum = bst = 0;
    ip = jp = 0;

    for(i = 1;i <= n + n;i++) {
        if(sum < 0) {
            sum = 0;
            ip = i;
        }

        sum += v[i];

        if(sum > bst) {
            if(i - ip < n) {
                bst = sum;
                jp = i;
            }
        }
    }

    fprintf(fout, "%d %d %d\n", bst, ip, jp - ip + 1);

    fclose(fin);
    fclose(fout);

    return 0;
}