Pagini recente » Cod sursa (job #691959) | Cod sursa (job #1500226) | Cod sursa (job #347315) | Cod sursa (job #3222193) | Cod sursa (job #3167578)
#include <fstream>
#include <vector>
int main() {
std::ifstream fin("buline.in");
std::ofstream fout("buline.out");
std::vector<short> buline;
buline.push_back(0);
long long n, best = -9223372036854775807, sum = 0, beg_idx, end_idx, idx = 1;
short elem;
bool neg;
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> elem >> neg;
if (!neg)
elem = elem*(-1);
buline.push_back(elem);
}
int n_temp = n;
for (int j = 1; j <= n; j++) {
for (int i = n_temp-n; i <= n_temp; i++) {
if (sum < 0) {
sum = buline[i];
idx = i;
}
else
sum += buline[i];
if (best < sum) {
best = sum;
beg_idx = idx;
end_idx = i;
}
}
sum = 0;
n_temp++;
idx = n_temp - n;
buline.push_back(buline[j]);
}
fout << best << " " << beg_idx << " " << (end_idx-beg_idx+1);
return 0;
}