Cod sursa(job #17404)

Utilizator gigi_becaliGigi Becali gigi_becali Data 15 februarie 2007 20:15:12
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#define maxn 50001
#include <string>
#include <cstdlib>

int x[maxn], n, k;

void citire()
{
	char aux[6*50000];
	
	freopen("secv2.in", "r", stdin);
	scanf("%d %d\n", &n, &k);
	
	fread(aux, sizeof(char), 6*50000, stdin);
	char *p;
	p=strtok(aux, " ");
	x[1]=atoi(p);
	
	for(int i=2;i<=n;i++) 
	{
		p=strtok(0, " \n");
		x[i]=atoi(p);
	}
	
}

void solve()
{
	int i,j;
	int s[maxn];
	memset(s,0,sizeof(s));
	s[1]=x[1];
	for(i=2;i<=n;i++) s[i]=s[i-1]+x[i];
	
	int max=-0x3f3f3f3f, pmax=-1;
	
	for(i=1;i<=n;i++) if(s[i]>max) max=s[i], pmax=i;
	
	int p1=pmax;
	int mx=-0x3f3f3f3f;
	for(i=pmax;i>=1;i--)
		if(s[pmax]-s[i]>mx) mx=s[pmax]-s[i], p1=i;
	p1++;
	int sum=0;
	for(i=p1;i<=pmax;i++)sum+=x[i];
	freopen("secv2.out", "w", stdout);
	printf("%d %d %d\n", p1, pmax, sum);
}
	


int main()
{
	citire();
//	for(int i=1;i<=n;i++) printf("%d ", x[i]);
	solve();
	return 0;
}