Cod sursa(job #3153245)

Utilizator juniorOvidiu Rosca junior Data 28 septembrie 2023 18:35:28
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

ifstream fin("ssm.in");   // fisier de intrare (input)
ofstream fout("ssm.out"); // fisier de iesire  (output)
int n, a, s, suma, sumaf, sf, df, i, smin, imin;

int main() {
    fin >> n;
    sumaf = -2e9;
    for (i = 1; i <= n; i++) {
        fin >> a;
        s = s + a;
        if (sumaf < s - smin) {
            sumaf = s - smin; sf = imin + 1; df = i;
        }
        if (smin > s) {
            smin = s; imin = i;
        }
    }
    fout << sumaf << ' ' << sf << ' ' << df;
    return 0;
}

/*

7 
                       i
              s        d
  a:    5 -6  3  4 -2  3 -3
        ----------------
        5 -1  2  6  4  7  4 
        ....
        1  2  3  4  5  6  7
  smin: 
                s
                        d

-5 -6 -3 -4 -2 -3 -3    
*/