Pagini recente » Cod sursa (job #59902) | Cod sursa (job #2449358) | Cod sursa (job #2689773) | Cod sursa (job #3125999) | Cod sursa (job #3165257)
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <cmath>
#include <vector>
#include <climits>
#define DIM 200000
#define INF DIM * 10000 + 5
using namespace std;
//ifstream f("in.in");
//ofstream g("out.out");
ifstream f("buline.in");
ofstream g("buline.out");
int n,x,y,s=0;
int sum = -INF,sol = -INF,solst,soldr,st=1;
int sum2 = INF,sol2 = INF,solst2,soldr2,st2=1;
signed main()
{
f>>n;
for(int i=1;i<=n;i++){
f>>x>>y;
if(y == 0){
x = -x;
}
s+=x;
//cout<<x<<" ";
if(sum+x >= x){
sum+=x;
}else{
sum = x;
st = i;
}
if(sum > sol){
sol = sum;
solst = st;
soldr = i;
}
if(sum2+x < x){
sum2+=x;
}else{
sum2 = x;
st2 = i;
}
if(sum2 < sol2){
sol2 = sum2;
solst2 = st2;
soldr2 = i;
}
}
if(sol > s-sol2){
g<<sol<<" "<<solst<<" "<<soldr-solst+1;
}else{
int len = soldr2-solst2+1;
g<<s-sol2<<" "<<soldr2+1<<" "<<n-len;
//cout<<solst2<<" "<<soldr2;
}
return 0;
}