Cod sursa(job #2514792)

Utilizator leru007Leru Ursu leru007 Data 26 decembrie 2019 20:21:28
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>
#define ll long long
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define pb push_back
#define f first
#define sc second
using namespace std;
ll mod=1e9+7,i,j;
ll n,x,a[600005],b[600005];
pair<ll,ll>s[600005];
int main(){
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin>>n;
    for(i=1;i<=n;i++) fin>>a[i];
    ll sum=0;
    for(i=1;i<=n;i++){
        s[i].f=sum+a[i];
        sum=sum+a[i];
        s[i].sc=i;
    }
    sort(s+1,s+n+1);
    ll poz2=s[n].sc;
    sum=0;
    for(i=1;i<=n;i++){
        b[i]=sum+a[i];
        sum=sum+a[i];
    }
    ll cm=b[1],poz1=2;
    for(i=1;i<poz2;i++){
        //cout<<cm<<" ";
        if(cm>b[i]){
            cm=b[i];
            poz1=i+1;
        }
    }
    //cout<<cm<<"\n";
    fout<<s[n].f-cm<<" ";
    fout<<poz1<<" "<<poz2;
    return 0;
}