Pagini recente » Cod sursa (job #1204601) | Cod sursa (job #109200) | Cod sursa (job #1010648) | Cod sursa (job #1174772) | Cod sursa (job #3308760)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int main () {
int n;
fin >> n;
vector<int> v;
for (int i = 0; i < n; ++i) {
int x, c;
fin >> x >> c;
if (c == 1)
v.push_back(x);
else
v.push_back(-x);
}
for (int i = 0; i < n - 1; ++i)
v.push_back(v[i]);
int sum_max = -1e9, sum = 0, start, poz, lungime;
for (int i = 0; i < v.size(); ++i) {
if (sum + v[i] > v[i])
sum += v[i];
else {
sum = v[i];
start = i % n;
}
if (sum > sum_max) {
sum_max = sum;
lungime = i - start + 1;
poz = start;
}
}
fout << sum_max << ' ' << poz + 1 << ' ' << lungime;
return 0;
}