Pagini recente » Cod sursa (job #1255067) | Cod sursa (job #3304143) | Cod sursa (job #2974728) | Cod sursa (job #1305465) | Cod sursa (job #3306062)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int main(){
int n; int num, culoare;
fin >> n;
int stot = 0;
int ssecvx = 0, secvix;
int ssmax = INT_MIN, smaxi, smaxj;
int ssecvn = 0, secvin;
int ssmin = INT_MAX, smini, sminj;
for (int i = 1; i <= n; i++){
fin >> num >> culoare; num *= -(!culoare)*2+1;
stot += num;
if (ssecvx < 0){
ssecvx = 0;
secvix = i;
} ssecvx += num;
if (ssecvx > ssmax){
ssmax = ssecvx;
smaxi = secvix;
smaxj = i;
}
if (ssecvn > 0){
ssecvn = 0;
secvin = i;
} ssecvn += num;
if (ssecvn < ssmin){
ssmin = ssecvn;
smini = secvin;
sminj = i;
}
}
if (smini != 1 || sminj != n){
if (stot - ssmin > ssmax || (stot - ssmin == ssmax && (sminj%n+1 < smaxi))){
ssmax = stot - ssmin;
smaxi = sminj%n+1;
smaxj = (smini+n+n-2)%n+1;
}
}
fout << ssmax << " " << smaxi << " " << (smaxj+n-smaxi+n)%n+1;
return 0;
}