Cod sursa(job #2905743)

Utilizator zsoltzsoltDirirczi Zsolt zsoltzsolt Data 23 mai 2022 15:42:21
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include<iostream>
#include<stdint.h>
#include<fstream>

using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");
 
int maxSub(int16_t a[], int size, int &start, int &end)
{
   int maxim = a[0];
   int start_c = 0;
   int end_c = 0;
   int maxim_curent = a[0];
 
   for (int i = 1; i < size; i++)
   {
       if(a[i] > maxim_curent+a[i]){
        maxim_curent = a[i];
        start_c = i;
        end_c = i;
       }
       else{
           maxim_curent = maxim_curent+a[i];
           end_c = i;
       }
       
       if(maxim < maxim_curent){
           maxim = maxim_curent;
           start = start_c;
           end = end_c;
       }
   }
   return maxim;
}
 
int main()
{
   int16_t a[900000];
   
   int n = 0;
   
   f >> n;
   
   
   for(int i = 0; i < n; ++i)
     f >> a[i];
     
   
   int start = 0;
   int end = 0;
   
   int max_sum = maxSub(a, n, start, end);
   
   g << max_sum << ' ' << start+1 << ' ' << end+1;
   return 0;
}