Pagini recente » Cod sursa (job #851147) | Cod sursa (job #2942324) | Cod sursa (job #282930) | Cod sursa (job #1118906) | Cod sursa (job #2990271)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
#define INF 100000
int a[400005];
int main() {
ios_base::sync_with_stdio(false);
fin.tie(NULL);
int n;
fin >> n;
for (int i = 1; i <= n; i++) {
int act, tip;
fin >> act >> tip;
if (tip == 0) {
a[i] = act * -1;
}
else {
a[i] = act;
}
}
for (int i = 1; i <= n; i++) {
a[n + i] = a[i];
}
long long suma = -1;
long long sumaact = -1;
int stact = 0;
int st = -1;
int sf = 0;
int mini = -INF;
int stmini;
int sfmini;
for (int i = 1; i <= 2 * n-1; i++) {
if (mini < a[i]) {
mini = a[i];
stmini = i;
sfmini = i;
}
if (sumaact < 0|| i - stact + 1 > n) {
stact = i;
sumaact = 0;
}
sumaact += a[i];
if (sumaact > suma) {
st = stact;
sf = i;
//cout << a[sf]<<'\n';
suma = sumaact;
}
}
if (st == -1) {
fout << mini << ' ' << stmini << ' ' << 1 << '\n';
}
else {
fout << suma << ' ' << st << ' ' << sf - st + 1 << '\n';
}
fin.close();
fout.close();
}