A
UBB · Informatică
76

Se consideră subalgoritmul ceFace() definit alăturat. Șirul a de lungime n este citit de la tastatură, iar șirul sp este inițializat cu 0. Funcția max(a, b) returnează maximul dintre numerele a și b.

Algoritm 1

Algorithm ceFace()
  c ← a[0]
  sp[0] ← a[0]
  If c < 0 then c ← 0 EndIf
  For i ← 1, n − 1 execute
    c ← c + a[i]
    sp[i] ← max(sp[i − 1], c)
    If c < 0 then c ← 0 EndIf
  EndFor
  c ← a[n − 1]
  b ← a[n − 1]
  If c < 0 then c ← 0 EndIf
  d ← b + sp[n − 2]
  For i ← n − 2 to 1, −1 execute
    c ← c + a[i]
    If b < c then b ← c EndIf
    If c < 0 then c ← 0 EndIf
    d ← max(d, b + sp[i − 1])
  EndFor
  Output d
EndAlgorithm

Care dintre următoarele afirmații sunt adevărate?

10 / 60