Pagini recente » Cod sursa (job #1388610) | Cod sursa (job #819088) | Cod sursa (job #2980223) | Cod sursa (job #1328472) | Cod sursa (job #2548264)
#include <iostream>
#include <fstream>
std::ifstream f("buline.in");
std::ofstream g("buline.out");
const int NMAX = 400'005;
int n,v[NMAX],op,begin,end,maxx,s,SolB,SolE;
int main(){
f >> n;
for(int i = 1;i <= n;++i){
f >> v[i] >> op;
v[i] = (op == 0 ? -1 * v[i] : 1 * v[i]);
v[n + i] = v[i];
}
begin = end = 1;
maxx = -((1LL << 31) - 1);
for(int i = 1;i <= 2 * n;++i){
if(s < 0){
s = v[i];
begin = i;
}else{
s += v[i];
}
if(s > maxx){
maxx = s;
SolB = begin;
SolE = i;
}
}
g << maxx << ' ' << SolB << ' ' << SolE - SolB + 1;
return 0;
}