Cod sursa(job #3149889)

Utilizator RMTomaRican Mihai Toma RMToma Data 13 septembrie 2023 12:58:34
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int v[1000];
int main()
{
  //two pointers
  int n;
  in >> n;
  for(int i=0;i<n;i++){
      in >> v[i];
  }
  int r1, r2;
  int st = 0;
  int s = 0;
  int mx = 0;
  for(int dr = 0; dr < n; dr++){
      s+=v[dr];
      while(s<0 && st<dr){
          s-=v[st];
          st++;
      }
      if(mx<s){
          r1 = dr;
          r2 = st;
      }
      mx = max(mx, s);
  }
  out << mx << " " << r1+1 << " " << r2+1;
}