Pagini recente » Cod sursa (job #2638515) | Cod sursa (job #2064452) | Cod sursa (job #2205709) | Cod sursa (job #3187541) | Cod sursa (job #3145480)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n, a, b, v[400002], s, p, l, i;
deque<int> q;
int main() {
fin >> n;
for(i = 1; i <= n; i++) {
fin >> a >> b;
if(b == 0) b = -1;
v[i] = a * b;
}
for(i = n + 1; i < 2 * n; i++) v[i] = v[i - n];
for(i = 1; i < 2 * n; i++) v[i] += v[i - 1];
for(int i = 1; i < 2 * n; i++){
while(!q.empty() && q.front() <= i - n) q.pop_front();
while(!q.empty() && v[q.back()] > v[i]) q.pop_back();
q.push_back(i);
if(v[i] - v[q.front()] > s){
s = v[i] - v[q.front()];
p = q.front() + 1;
l = i - q.front();
}
}
fout << s << " " << p << " " << l;
return 0;
}