Cod sursa(job #2931324)

Utilizator rares89_Dumitriu Rares rares89_ Data 30 octombrie 2022 21:06:49
Problema Buline Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <climits>

using namespace std;

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

int n, x, y, v[400005];
long long int s, smax = LLONG_MIN;
int st, dr;

int main() {
    fin >> n;
    for(int i = 1; i <= n; i++) {
        fin >> x >> y;
        if(y == 0) {
            v[i] -= x;
        } else {
            v[i] += x;
        }
    }
    for(int i = 1; i <= n; i++) {
        v[i + n] = v[i];
    }
    st = 1;
    for(int i = 1; i < 2 * n; i++) {
        s += v[i];
        if(s > smax) {
            smax = s;
            dr = (i >= n ? i - n : i);
        } else if(s < smax) {
            st = (i >= n ? i - n : i);
        }
        if(s < 0) {
            s = 0;
        }
    }
    fout << smax << " " << st << " " << abs(dr - st + 1);
    return 0;
}