Cod sursa(job #2462695)

Utilizator isa_edi_cristeaEdi Cristea isa_edi_cristea Data 27 septembrie 2019 18:55:23
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE *fin=fopen("ssm.in","r"),*fout=fopen("ssm.out","w");
	int max,n,nr,maxi,cd,cs,cdf,csf,a,c,poz,i,s;
	fscanf(fin,"%d",&n);
	max=0;
	cd=0;
	cs=0;
	cdf=0;
	csf=0;
	s=0;
	for(i=1;i<=n;i++){
		fscanf(fin,"%d",&nr);
		if(maxi<nr){
			maxi=nr;
			poz=i;
		}
		if(nr<0)
			c++;
		s+=nr;
		if(s<0){
				cs=i+1;
				s=0;
		}
		if(s>max){
			max=s;
			cd=i;
			cdf=cd;
			csf=cs;
		}
		if(s==max){
			if(cdf-csf>cd-cs){
				cdf=cd;
				csf=cs;
			}
		}
	}
	if(c==n)
		fprintf(fout,"%d %d %d",maxi,poz,poz);
	else
		fprintf(fout,"%d %d %d",max,csf,cdf);
	return 0;
}