Cod sursa(job #2778041)

Utilizator LeonGSLeo Jechiu LeonGS Data 27 septembrie 2021 20:39:53
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
long long vec[6000001], sume[6000001];
long long n, maxsum=-1000000000000,numsum,minsum=1000000000000,numsum1;
int main(){
    freopen("ssm.in","r",stdin);
   freopen("ssm.out","w",stdout);
   cin >> n;
   sume[0]=0;
   for(long long i=1; i<=n; i++){
    cin >> vec[i];
    sume[i]=sume[i-1]+vec[i];
   }
   for(long long i=1; i<=n; i++){
      maxsum=max(maxsum, sume[i]);
   }
   for(long long i=1; i<=n; i++){
    if(sume[i]==maxsum){
        numsum=i;
        break;
    }
   }
   for(long long i=1; i<=numsum; i++){
    minsum=min(minsum, sume[i]);
   }
   for(long long i=1; i<=numsum; i++){
    if(sume[i]==minsum){
        numsum1=i;
        break;
    }
   }
   cout << maxsum-minsum << ' ';
   cout << numsum1+1 << ' ' << numsum;
}