Pagini recente » Cod sursa (job #1312588) | Cod sursa (job #247782) | Cod sursa (job #3203942) | Cod sursa (job #2413573) | Cod sursa (job #72460)
Cod sursa(job #72460)
#include <stdio.h>
#include <stdlib.h>
#include <values.h>
#define max 200001
int n, a[max], s[max], t[max];
void citire()
{
freopen("buline.in","r",stdin);
scanf("%d", &n);
int aux;
for (int i=1; i<=n; i++)
{
scanf("%d %d", &a[i], &aux);
if (aux == 0) a[i]*=-1;
}
fclose(stdin);
}
inline int MAX( int a, int b)
{
if (a>b) return a;
else return b;
}
void solve()
{
t[1]=s[1]=a[1];
for (int i = 2; i<=n; i++)
s[i] =s[i-1] + a[i];
for ( int i =2; i<=n; i++)
t[i] = MAX( t[i-1], s[i] );
int rez=-MAXINT;
for (int i = 2; i<=n; i++)
rez = MAX ( t[i-1] + s[n]-s[i-1], rez);
freopen("buline.out", "w", stdout);
printf("%d 1 1", rez);
fclose(stdout);
}
int main()
{
citire();
solve();
return 0;
}