Böl ve Yönet ile Maksimum Alt Dizi Toplamı

SonsuzUs Her şey › Category: Soru › Böl ve Yönet ile Maksimum Alt Dizi Toplamı
sonsuz Kurucu sordu 55 dakika önce
int mystery(int A[], int l, int h) {
    if (h == l)
        return A[l];
    else {
        int m = (l + h) / 2;
        int left = mystery(A, l, m);
        int right = mystery(A, m + 1, h);
        int X = f(A, l, m, h);
        if (left >= right && left >= X)
            return left;
        else if (right >= left && right >= X)
            return right;
        else
            return X;
    }
}

int f(int A[], int l, int m, int h) {
    int SL = -10000, SR = -10000;
    int t = 0, i, j;
    for (i = m; i >= l; i--) {
        t = t + A[i];
        if (t > SL) SL = t;
    }
    t = 0;
    for (j = m + 1; j <= h; j++) {
        t = t + A[j];
        if (t > SR) SR = t;
    }
    return SL + SR;
}

B dizisi [1, -4, 3, 4, -2, 6, -5, 2] değerlerini içeren 8 elemanlı bir dizi olduğunda, mystery(B, 0, 7) çağrısı hangi değeri döndürür?

Cevapla