Pagini recente » Cod sursa (job #767415) | Cod sursa (job #1033269) | Cod sursa (job #504872) | Cod sursa (job #993197) | Cod sursa (job #2930599)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int DIM = 200001;
int n;
int v[DIM];
int sMax = INT_MIN, pMax = 0, lMax = 0, minn = INT_MAX;
int p = 1, l = 0, s = 0;
void getMaxSeqSum(int start, int end) {
for (int i = start; i <= end; i++) {
if (s < 0) {
s = v[i];
p = i, l = 1;
} else {
s += v[i];
l++;
}
if (s > sMax) {
sMax = s;
pMax = p, lMax = l;
}
minn = min(minn, v[i]);
}
}
int main() {
fin >> n;
for (int i = 1; i <= n; i++) {
int val, color;
fin >> val >> color;
v[i] = (color ? val : -val);
}
getMaxSeqSum(1, n);
getMaxSeqSum(1, p - 1);
fout << sMax << ' ' << pMax << ' ' << lMax;
return 0;
}