Cod sursa(job #2923191)

Utilizator DharaknoidOmegaHadhazi Marton DharaknoidOmega Data 12 septembrie 2022 08:35:20
Problema Subsecventa de suma maxima Scor 75
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("ssm.in");
ofstream cout("ssm.out");

struct adat
{
    int sz,d,kezd;
};
int maxi=-2147483647,n,i,kezd,veg;

int main()
{
    cin>>n;
    vector <adat> x(n+1);
    for(i=1;i<=n;++i)
    {
        cin>>x[i].sz;
        if(x[i].sz>x[i-1].d+x[i].sz)
        {
            x[i].d=x[i].sz;
            x[i].kezd=i;
        }
        else
        {
            x[i].d=x[i].sz+x[i-1].d;
            x[i].kezd=x[i-1].kezd;
        }
        if(x[i].d>maxi || (x[i].d==maxi && i-x[i].kezd<veg-kezd))
        {
            maxi=x[i].d;
            kezd=x[i].kezd;
            veg=i;
        }
    }
    cout<<maxi<<" "<<kezd<<" "<<veg;
}