В задании исходный код программы введен немного неправильно, поэтому я решил его загуглить и нашел во с идентичными кодом без ответа. Код, вроде, рабочий, но я его серьезно не тестировал.
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()
Поправьте пути на верные самостоятельно. скрины во вложениях, файлы тоже
static void Main(string[] args)
{
//Вытаскиваем фамилии в массив lastnames
string file1 = "C:\\Desktop\\lastname.txt";
StreamReader rd1 = new StreamReader(new FileStream(file1, FileMode.Open), System.Text.Encoding.Default);
string lastname = "";
lastname = rd1.ReadToEnd().Replace("\n", "").Replace("\r", " ");//Считываем строку из файла, удаляя из нее символы переноса строки.
String[] lastnames = lastname.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
//Вытаскиваем номера в массив
string file2 = "C:\\Desktop\\num.txt";
StreamReader rd2 = new StreamReader(new FileStream(file2, FileMode.Open), System.Text.Encoding.Default);
string number = "";
number = rd2.ReadToEnd().Replace("\n", "").Replace("\r", " ");//Считываем строку из файла, удаляя из нее символы переноса строки.
String[] numbers = number.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("Введите искомый номер телефона:");
string numserch = Console.ReadLine();
//поиск элемента в массиве номеров
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] == numserch)
{
Console.WriteLine("Владелец данного номера: " + lastnames[i]);
}
}
Console.ReadLine();
}
