Pagini recente » Cod sursa (job #2850776) | Cod sursa (job #1701507) | Cod sursa (job #1457605) | Cod sursa (job #187101) | Cod sursa (job #2746801)
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int nmax = 2e5 + 5;
int n, v[2 * nmax];
void read(){
fin >> n;
for(int i = 1; i <= n; i++){
int nr, sg;
fin >> nr >> sg;
if(!sg)
nr *= (-1);
v[i] = nr;
}
for(int i = 1; i <= n; i++)
v[n + i] = v[i];
}
void solve(){
long long s = 0, best = v[1];
int f = 1, l = 1, r = 1;
for(int i = 1; i <= 2 * n; i++){
if(s < 0){
s = 0;
f = i;
}
s += v[i];
if(i - n == f)
s -= v[f++];
if(s > best){
best = s;
l = f;
r = i;
}
}
fout << best << " " << l << " " << r - l + 1;
}
int main()
{
read();
solve();
return 0;
}