Pagini recente » Cod sursa (job #166186) | Cod sursa (job #1532067) | Cod sursa (job #1025279) | Cod sursa (job #923712) | Cod sursa (job #2118319)
#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;
}
}
fout<<p1<<" "<<u<<"\n"<<pp1<<" "<<uu<<"\n";
if(maxim < sum - minim){
fout<<sum - minim<<" "<<uu + 1<<" "<<n - (pp1 - uu + 1);
}
else{
fout<<maxim<<" "<<p1<<" "<<u - p1 + 1;
}
return 0;
}