Pagini recente » Cod sursa (job #2511826) | Cod sursa (job #2594118) | Cod sursa (job #3161559) | Cod sursa (job #701862) | Cod sursa (job #2910716)
#include <fstream>
using namespace std;
ifstream cin ("buline.in");
ofstream cout ("buline.out");
const int N = 2e5;
int a[N + 1];
int n, x, y;
int main()
{
cin >> n;
for (int i = 1; i <= n; ++i)
{
cin >> x >> y;
if (!y)
x = -x;
a[i] = a[i + n] = x;
}
int s = -1, smax = -1, st, dr, st1;
for (int i = 1; i < 2 * n; ++i)
{
if (dr - st == n - 1)
{
if (s > smax)
{
smax = s;
st = st1;
dr = i;
}
s = 0;
}
if (s + a[i] < a[i])
s = a[i], st1 = i;
else
s += a[i];
if (s > smax)
{
smax = s;
st = st1;
dr = i;
}
}
cout << smax << ' ' << st << ' ' << dr - st + 1 << '\n';
return 0;
}