Cod sursa(job #343058)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 24 august 2009 20:31:00
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<cstdio>

using namespace std;
int abs(int a)
 {if(a<0) return -a;
 else return a;}
int n,x,a[6000007],s[6000007],tot,min1,max1,poz1,poz2;
int main()
{freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);

scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d", &a[i]);
s[0]=0;
for(int i=1;i<=n;i++) {s[i]=s[i-1]+a[i];}
min1=2147483647;
max1=-2147483647;
poz1=0;
for(int i=1;i<=n;i++) if(min1>s[i]) {min1=s[i];poz1=i;}
for(int i=0;i<=n;i++) if(max1<abs(min1-s[i])) {max1=abs(min1-s[i]);poz2=i;}
if(poz1<poz2)
    printf("%d %d %d \n",max1,poz1+1,poz2);
else    printf("%d %d %d \n",max1,poz2+1,poz1); 
    
    return 0;}