Pagini recente » Cod sursa (job #226072) | Cod sursa (job #104968) | Cod sursa (job #645876) | Cod sursa (job #2492372) | Cod sursa (job #1510853)
#include<cstdio>
#define DIM 400001
#define SET(x) (x ? 1 : - 1)
using namespace std;
int N, X, Y, S, MAX;
int i, nr,finish, lung;
int v[DIM];
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d", &N);
for (i = 1; i <= N; i++)
{
scanf("%d%d", &X, &Y);
v[i] = v[i + N] = SET(Y) * X;
}
/*for (i = 1; i <= 2 * N; i++)
printf("%d ", v[i]);
printf("\n");*/
for (i = 1; i <= N * 2; i++)
{
S += v[i];
nr++;
if (nr > N)
S -= v[i - N], nr--;
if (S > MAX && nr <= N)
{
MAX = S;
finish = i;
lung = nr;
}
if (S == MAX)
if (i - nr < finish - lung)
{
finish = i;
lung = nr;
}
else
if (i - nr == finish - lung && nr < lung)
lung = nr;
if (S < 0)
{
nr = 0;
S = 0;
}
// printf("%d\n", S);
}
printf("%d %d %d", MAX, finish - lung + 1, lung);
}