Pagini recente » Cod sursa (job #166322) | Cod sursa (job #2339702) | Cod sursa (job #896494) | Cod sursa (job #3246313) | Cod sursa (job #2118325)
#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;
int 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;
}
}
if(maxim < sum - minim){
fout<<sum - minim<<" "<<uu + 1<<" "<<n - (uu - pp1 + 1);
}
else{
fout<<maxim<<" "<<p1<<" "<<u - p1 + 1;
}
return 0;
}