Cod sursa(job #2309568)

Utilizator TeodoraMiuTeodora Miu TeodoraMiu Data 29 decembrie 2018 12:59:43
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    FILE*fin=fopen("ssm.in","r");
    FILE*fout=fopen("ssm.out","w");
    long n,x,s=-1,i1,i2,maxx,maxi1,maxi2,i;
    fscanf(fin,"%ld",&n);
    fscanf(fin,"%ld",&x);
    maxx=x;
    maxi1=1;
    maxi2=1; //daca e primul element, trebuie initializat maximul cu acel element
    s=x;
    i1=1;
    i2=1;
    for (i=1; i<n; i++)
    {
        fscanf(fin,"%ld",&x);
        if (s<0)
        {
            s=x;
            i1=i+1;
            i2=i+1;
        }
        else
        {
            s+=x;
            i2=i+1;
        }
        if (maxx<s)
        {
            maxx=s;
            maxi1=i1;
            maxi2=i2;
        }
    }
    fprintf(fout,"%ld %ld %ld",maxx,maxi1,maxi2);
    return 0;
}