Cod sursa(job #2356253)

Utilizator lupandreiLup Andrei lupandrei Data 26 februarie 2019 16:24:03
Problema Subsecventa de suma maxima Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream in("ssm.in");
ofstream out ("ssm.out");
int v[6000001], n;
void citire(int &n)
{
    in>>n;
    for(int i=1;i<=n;i++)
        in>>v[i];
}
void maxim(int n,int &maxi, int &pi,int &psf)
{
    int s;
    pi=0;
    psf=0;
    maxi=-2147483647;
    for(int i=1;i<n;i++)
    for(int j=i+1;j<=n;j++)
    {
        s=0;
        for(int d=i;d<=j;d++)
            s+=v[d];
        if(s>maxi)
        {
            maxi=s;
            pi=i;
            psf=j;
        }
        else
        {
            if(s==maxi&&j-i<psf-pi)
            {
                pi=i;
                psf=j;
            }
        }
    }
}
int main()
{
    int maxi,pi,psf;
    citire(n);
    maxim(n,maxi,pi,psf);
    out<<maxi<<" "<<pi<<" "<<psf;
    return 0;
}