Cod sursa(job #2639707)

Utilizator ililogIlinca ililog Data 3 august 2020 15:56:18
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
using namespace std;
#include<bits/stdc++.h>

int n, s[6000001];
long long bestSum, sum;
int st, dr, idx;

int main() {

    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    
    fin >> n;
    for (int i = 1; i<=n; i++) {
        fin >> s[i];
    }
    
    for (int i = 1; i<=n; i++) {
        if (sum < 0) {
            sum = s[i];
            idx = i;
        } else {
            sum += s[i];
            if (bestSum < sum) {
                bestSum = sum;
                st = idx;
                dr = i;
            } else if (bestSum == sum) {
                if (idx < st) {
                    bestSum = sum;
                    st = idx;
                    dr = i;
                } else if (idx == st) {
                    if (i < dr) {
                        bestSum = sum;
                        st = idx;
                        dr = i;
                    }
                }
            }
        }
    }
    
    if (st == 0) {
        st = 1;
    }
    
    fout << bestSum << " " << st << " " << dr;
    
    fin.close();
    fout.close();

    return 0;
}