Cod sursa(job #339478)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 10 august 2009 00:03:01
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#define N 6000005
int n,sum[N];
int main()
{
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	scanf("%d\n",&n);
	int i=0,poz=0,rez,poz_f,poz_i,nr=0,semn=1;
	char x;
	rez=-2000000000;
	while (scanf("%c",&x)!=EOF)
	{
		if (x>='0' && x<='9')
			nr=nr*10+(x-'0');
		if (x=='-')
			semn=-1;
		if (x==' ' || x=='\n')
		{
			i++;
			nr*=semn;
			sum[i]=sum[i-1]+nr;
			if (sum[i]-sum[poz]>rez)
			{
				rez=sum[i]-sum[poz];
				poz_f=i;
				poz_i=poz+1;
			}
			if (sum[i]<sum[poz])
				poz=i;
			nr=0;
			semn=1;
		}
	}
	printf("%d %d %d\n",rez,poz_i,poz_f);
	return 0;
}