Pagini recente » Cod sursa (job #2565872) | Cod sursa (job #227815) | Cod sursa (job #2167898) | Cod sursa (job #2188368) | Cod sursa (job #2116029)
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int n, v[200004], s, p, x, p1, u, s1, ss, ss1, pp1, uu, minim = 10005, pp;
long long sum, maxim = -10005;
int main()
{
fin>>n;
for(int i = 1; i <= n; i++){
fin>>v[i]>>x;
if(x == 0){
v[i] *= -1;
}
sum += v[i];
}
for(int i = 1; i <= n; i++){
if(i == 1){
s = v[i];
p = i;
}
else{
s1 = v[i] + s;
if(s1 >= v[i]){
s = s1;
}
else{
s = v[i];
p = i;
}
}
if(maxim < s){
maxim = s;
u = i;
p1 = p;
}
}
for(int i = 1; i <= n; i++){
if(i == 1){
ss = v[i];
pp = i;
}
else{
ss1 = v[i] + ss;
if(ss1 <= v[i]){
ss = ss1;
}
else{
ss = v[i];
pp = i;
}
}
if(minim > ss){
minim = ss;
uu = i;
pp1 = pp;
}
}
long long kkk = sum - minim;
if(maxim > kkk){
fout<<maxim<<" ";
int numere = p1 - u + 1;
fout<<p1<<" "<<numere;
}
else{
fout<<kkk<<" ";
int numere = n - (pp1 - uu + 1);
fout<<uu + 1<<" "<<numere;
}
return 0;
}