Cod sursa(job #290418)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 27 martie 2009 21:59:34
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
//#include<algorithm>
//using namespace std;
#include<stdio.h>

#define DIM 200001
#define INF 1000001

int n,a[2*DIM];

void solve(){
    int i,j,cul,min0,pozmin0,max0;

    scanf("%d",&n);
    for(i=1; i<=n; ++i){
        scanf("%d%d",&a[i],&cul);
        if(!cul)
            a[i]*=-1;}
    for(i=1; i<=n; a[i+n]=a[i],++i);
    for(i=1; i<=2*n; a[i]+=a[i-1],++i);
	for(i=1,min0=pozmin0=0,max0=-INF; i<=2*n; ++i){
        if(a[i]-min0>max0)
			max0=a[i]-min0;
		if(i-n>=pozmin0){
			for(j=i-n+1,min0=INF; j<=i; ++j)
				if(a[j]<min0){
					min0=a[j];
					pozmin0=j;}}
		else if(a[i]<min0){
			min0=a[i];
			pozmin0=i;}}

    printf("%d 0 0",max0);
    /*for(i=1; i<=2*n; ++i)
        printf("%d ",a[i]);*/}

int main(){

    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    solve();
    return 0;}