Cod sursa(job #3203147)

Utilizator AnonymousUserBogdan Ionelia AnonymousUser Data 13 februarie 2024 10:10:30
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, x, curr, i1, i2, maxi, is, ie;

int main()
{
    fin>>n;
    fin>>x;
    curr=x;
    maxi = x;
    i1 = i2 = 1;
    for(int i = 2; i <= n; ++i)
    {
        fin>>x;
        if(x > curr+x)
        {
            curr=x;
            is = ie = i;
            if(curr>maxi)
                maxi = curr, i1 = i2 = i;
        }
        else
        {
            curr+=x;
            ie=i;
            if(curr>maxi)
                maxi=curr, i1=is, i2 = ie;
            else if(curr == maxi)
            {
                if(i1==is)
                    i2 = min(i2, ie);
                else if(is<i1)
                    i1=is, i2=ie;
            }
        }
    }
    fout<<maxi<<' '<<i1<<' '<<i2;
    return 0;
}