Cod sursa(job #811924)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 13 noiembrie 2012 10:16:33
Problema Subsecventa de suma maxima Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>

using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");

int v[6000300],s[6000300],max,o,p,n,i,j;
int main()
{

  fscanf(f,"%d",&n);
  for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
 max=0;
 i=1;
 s[i]=v[i];
  for(i=2;i<=n;i++)
  s[i]=s[i-1]+v[i];

  for(i=1;i<=n-1;i++)
  for(j=i+1;j<=n;j++)
{ if (s[j]>s[i])
  if (s[j]-s[i]>max) {max=s[j]-s[i];o=i+1;p=j;}
  if (s[j]-s[i]==max && j-i-1<p-o){max=s[j]-s[i];o=i+1;p=j;}
}
fprintf(g,"%d% d %d",max,o,p);
fclose(g);
return 0;
}