Можете перевести с C++ на python?
#include

const int N=1E5;
int a[N], p[N], s[N];

int main() {
int n, k, i, j; std::cin >> n >> k;
for (i=0, j=0; i std::cin >> a[i];
if (a[i] > a[j]) {p[i] = i; j = i;} else p[i] = p[j];
}
for (i=n-1, j=n-1; i>=0; i--) {
if (a[i] >= a[j]) {s[i] = i; j = i;} else s[i] = s[j];
}
int m = 0, l = 0, r = k+1;
for (i=l, j=r; j int t = a[p[i]] + a[s[j]];
if (t > m) {l = p[i]; r = s[j]; m = t;}
}
std::cout << (l+1) << " " << (r+1);
}

anastasia559 anastasia559    3   26.03.2020 18:29    1

Ответы
fj8f fj8f  26.03.2020 18:30

В задании исходный код программы введен немного неправильно, поэтому я решил его загуглить и нашел во с идентичными кодом без ответа. Код, вроде, рабочий, но я его серьезно не тестировал.

N = 1E5

a, p, s = [], [], []

def main():

       n = k = i = j = 0

       (n, k) = (int(input()), int(input()))

       p = [0] * n

       s = [0] * n

       for i in range(0, n):

               a.append(int(input()))

               if a[i] > a[j]:

                       p[i] = i

                       j = i

               else:

                       p[i] = p[j]

       

       j = n - 1

       for i in range(n - 1, -1, -1):

               if (a[i] >= a[j]):

                       s[i] = i

                       j = i

               else:

                       s[i] = s[j]

       

       m, l, r = 0, 0, k + 1

       i = l

       for j in range(r, n):

               t = a[p[i]] + a[s[j]]

               if t > m:

                       l = p[i]

                       r = s[j]

                       m = t

               i += 1;

       print(str(l + 1) + " " + str(r + 1))

if __name__ == "__main__":

       main()

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика