Дан массив, содержащий 2014 положительных целых чисел. Симметричной парой называются два элемента, которые находятся на равном расстоянии от концов массива. Например, 1-й и 2014-й элементы, 2-й и 2013-й и т. д. Порядок элементов в симметричной паре не учитывается: элементы на 1 и 2014 местах — это та же самая пара, что и элементы на 2014 и 1 местах. Напишите на одном из языков программирования программу, которая подсчитывает в массиве количество симметричных пар, у которых сумма элементов больше 20. Программа должна вывести одно число – количество отобранных симметричных пар. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
| Бейсик | Паскаль |
|---|---|
N=2014 DIM A(N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END | const N=2014; var a: array [1..N] of integer; i, j, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; #define N 2014 int main(){ int a[N]; int i, j, k; for (i=0; i<N; i++) cin >> a[i]; … } | алг нач цел N=2014 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон |
| Python | |
# допускается также # использовать # целочисленные переменные j, k a = [] n = 2014 for i in range(0, n): a.append(int(input())) ... | |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4). В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Программа просматривает все симметричные пары и подсчитывает количество таких пар, в которых сумма элементов больше 20.
Пример фрагмента программы на Паскале
k:=0;
for i:=1 to N div 2 do begin
if a[i] + a[N+1-i] > 20 then k:=k+1;
end;
writeln(k);
Можно использовать отдельную переменную для индексирования элементов в конце массива. Фрагмент в этом случае может выглядеть так:
k:=0;
j:=N;
for i:=1 to N div 2 do begin
if a[i] + a[j] > 20 then k:=k+1;
j:=j-1;
end;
writeln(k);

