Cod sursa(job #290456)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 27 martie 2009 23:05:35
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
//#include<algorithm>
//using namespace std;
#include<stdio.h>

#define DIM 200001
#define INF -1000001

int n,a[DIM];

void solve(){
	int i,ok,st,dr,cul,poz,smin,max0;

	scanf("%d",&n);
	for(i=1; i<=n; ++i){
		scanf("%d%d",&a[i],&cul);
		if(!cul)
			a[i]*=-1;
        if(a[i]<0)
            ++ok;}
    for(i=1; i<=n; a[i]+=a[i-1],++i);
    if(!ok)
        printf("%d 1 %d",a[n],n);
    else{
        for(i=1,smin=poz=0,max0=INF; i<=n; ++i){
            if(a[i]-max0<smin){
                smin=a[i]-max0;
                st=poz+1;
                dr=i;}
            if(a[i]>max0){
                max0=a[i];
                poz=i;}}
        printf("%d ",a[n]-smin);
        if(dr==n)
            printf("1 %d",n-dr+st-1);
        else
            printf("%d %d",dr+1,n-dr+st-1);}}

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