Cod sursa(job #1522922)

Utilizator Balescu_OvidiuBalescu Ovidiu-Gheorghe Balescu_Ovidiu Data 12 noiembrie 2015 09:51:46
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

int main(){
    unsigned long n;
    FILE*f=fopen("ssm.in","r");
    FILE*g=fopen("ssm.out","w");
    fscanf(f,"%lu",&n);
    long *s=(long *)malloc(sizeof(long)*n);
    fscanf(f,"%ld",&s[0]);
    unsigned long max_i=n-1,min_j=0;
    for(unsigned long i=1;i<n;i++){
        fscanf(f,"%ld",&s[i]);
        s[i]+=s[i-1];
        if(s[i]<s[min_j])
            min_j=i;
        else if(s[max_i]<s[i])
            max_i=i;
    }
    if(min_j<max_i)
        fprintf(g,"%ld %lu %lu",s[max_i]-s[min_j],min_j+2,max_i+1);
    else
        fprintf(g,"%ld %lu %lu",s[max_i]-s[min_j],max_i+1,min_j+2);
    fclose(f);
    fclose(g);
    return 0;
}