Pagini recente » Cod sursa (job #311720) | Cod sursa (job #3272491) | Cod sursa (job #2306530) | Cod sursa (job #2382922) | Cod sursa (job #2931324)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n, x, y, v[400005];
long long int s, smax = LLONG_MIN;
int st, dr;
int main() {
fin >> n;
for(int i = 1; i <= n; i++) {
fin >> x >> y;
if(y == 0) {
v[i] -= x;
} else {
v[i] += x;
}
}
for(int i = 1; i <= n; i++) {
v[i + n] = v[i];
}
st = 1;
for(int i = 1; i < 2 * n; i++) {
s += v[i];
if(s > smax) {
smax = s;
dr = (i >= n ? i - n : i);
} else if(s < smax) {
st = (i >= n ? i - n : i);
}
if(s < 0) {
s = 0;
}
}
fout << smax << " " << st << " " << abs(dr - st + 1);
return 0;
}