Cod sursa(job #36206)

Utilizator swift90Ionut Bogdanescu swift90 Data 23 martie 2007 10:32:37
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<stdlib.h>
int nr[50001],s1[50001],s2[50001];
int main(){
	FILE*in=fopen("secv2.in","r");
	FILE*out=fopen("secv2.out","w");
	int n,k,i,p1,p2,s=0,max;
	fscanf(in,"%d %d",&n,&k);
	for(i=0;i<n;i++)
		fscanf(in,"%d",&nr[i]);
	
	s1[0]=nr[0];
	for(i=1;i<n;i++)
		s1[i]=s1[i-1]+nr[i];
	
	if(n==k){
		fprintf(out,"1 %d %d",k,s1[k-1]);
		return 0;
	}
	
	s2[n-1]=nr[n-1];
	for(i=n-2;i>=0;i--)
		s2[i]=s2[i+1]+nr[i];
	
	max=-30000;
	for(i=0;i<n;i++){
		if(s1[i]>max){
			max=s1[i];
			p2=i;
		}
	}
	
	max=-30000;
	for(i=n-1;i>=0;i--){
		if(s2[i]>max){
			max=s2[i];
			p1=i;
		}
	}
	
	for(i=p1;i<=p2;i++)
		s=s+nr[i];
	
	fprintf(out,"%d %d %d\n",p1+1,p2+1,s);
	
	return 0;
}