Cod sursa(job #2923193)

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

using namespace std;

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

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

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