Cod sursa(job #1681353)

Utilizator yo_andrei_2003Murica Andrei yo_andrei_2003 Data 9 aprilie 2016 13:26:41
Problema Subsecventa de suma maxima Scor 80
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>
int s[6000000], v[6000000];
int main()
{
    int n, max, min, poz1=0, poz2=-1, i;
    FILE *fin, *fout;
    fin=fopen("ssm.in" ,"r");
    fout=fopen("ssm.out" ,"w");
    fscanf(fin, "%d" ,&n);
    max=0;
    min=0;
    for (i=0;i<n;i++) {
        fscanf(fin, "%d" ,&v[i]);
        s[i]=s[i-1]+v[i];
        if (s[i]>max) {
            max=s[i];
            poz1=i;
        }
        if (s[i]<min) {
            min=s[i];
            poz2=i;
        }
    }
    if (s[poz1]+v[poz2+1]-s[poz2+1]>max) {
        fprintf(fout, "%d %d %d" ,s[poz1]+v[poz2+1]-s[poz2+1] ,poz2+2 ,poz1+1);
    }
    else {
        fprintf(fout, "%d 1 %d" ,max ,poz1+1);
    }
    return 0;
}