Cod sursa(job #164637)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 24 martie 2008 16:54:16
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
# include <stdio.h>
FILE *f;
long N,k,i,sum[50002],min,max,p1,p2,s;
long A[50002];
int main()
{
  f=fopen("secv2.in","r");
  fscanf(f,"%ld %ld",&N,&k);
  for(i=1;i<=N;i++)
    fscanf(f,"%ld",&A[i]);
  fclose(f);
  sum[0] = 0;max=-2147483648;
  for (i = 1; i <= N; i++){
	sum[i] = A[i] + sum[i-1];
	if (sum[i]>=max) {
	 max=sum[i]; p1=i;
	}
  }
  for (i=1;i<=p1+1;i++)
	sum[i]=0;
  max=-2147483648;
  for (i = p1; i >0; i--){
	sum[i] = A[i] + sum[i+1];
	if (sum[i]>=max) {
	 max=sum[i]; p2=i;
	}
  }

  f=fopen("secv2.out","w");
  if (k==N)  {
		s=0;
		for (i=1;i<=N;i++)
		   s+=A[i];
		fprintf(f,"1 %ld %ld",N,s);
	      }
	else fprintf(f,"%ld %ld %ld",p2,p1,max);
  fclose(f);
  return 0;
}