Cod sursa(job #25441)

Utilizator MirageRobert Sandu Mirage Data 4 martie 2007 12:36:57
Problema Buline Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 9-a si gimnaziu Marime 0.73 kb
#include<stdio.h>
int w[200000];
int main () {
	int v[200000],a[200000],i,n,s=0,p=1,l=0,j,c,c1=0,max=-1000000000,p1;
	FILE *in=fopen("buline.in","r"), *out=fopen("buline.out","w");
	fscanf(in,"%d",&n);
	for(i=0;i<n;i++){
		fscanf(in,"%d%d",&v[i],&a[i]);
		if(a[i]==0){
			v[i]=v[i]*-1;
			c1++;
			if(v[i]>max){
				max=v[i];
				p1=i+1;
			}
		}
	}
	if(c1==n){
		fprintf(out,"%d %d 1",max,p1);
		return 0;
	}
	for(j=1;j<=2;j++){
		for(i=0;i<n&&w[i+1]!=1;i++){
			if(s>=0&&w[i]!=1){
				s+=v[i];
				w[i]=1;
				l++;
			}
			if(s<0){
				s=0;
				c=i;
				while(w[c]==1){
					w[c]=0;
					c--;
				}
				p=i+2;
				l=0;
			}
		}
	}
	fprintf(out,"%d %d %d",s,p,l);
	fclose(in);
	fclose(out);
	return 0;
}