Pagini recente » Cod sursa (job #3004849) | Cod sursa (job #3121071) | Cod sursa (job #1699616) | Cod sursa (job #1609135) | Cod sursa (job #3283933)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream fin("buline.in");
ofstream fout("buline.out");
int n, culoare, total = 0;
fin >> n;
vector<int> v(n);
vector<int> s(n);
for (int i = 0; i < n; ++i) {
fin >> v[i] >> culoare;
if (!culoare)
v[i] *= -1;
total += v[i];
}
int minn = v[0], end = n, start = 1, i, len = n;
s[0] = v[0];
for (i = 1; i < n; ++i) {
if (s[i-1] + v[i] > v[i]) {
s[i] = v[i];
start = i + 1;
} else {
s[i] = s[i-1] + v[i];
}
if (s[i] < minn) {
minn = s[i];
end = i + 1;
len = end - start;
}
}
if (end + 1 == n)
i = 1;
else
i = end + 1;
fout << total - minn << " " << i << " " << end - len + 1;
return 0;
}