profile
Размещено 6 лет назад по предмету Информатика от Rustik20013

Задача 1. Арифметическая прогрессия
Васе дали задание: в заданной последовательности чисел найти три подряд идущих числа, образующих возрастающую арифметическую прогрессию. Вася решил написать программу, которая выводила бы тройку чисел, образующих возрастающую арифметическую прогрессию.

Помоги Васе написать такую программу.

Формат ввода
В первой строке входного файла записано натуральное число N (3 ≤ N ≤ 1 000 000). Во второй строке записано N неотрицательных целых чисел через пробел, каждое из которых не превосходит 1 000 000 000.

Формат вывода
В выходной файл выведите три искомых числа. Если ответов несколько, выведите те числа, которые расположены левее. Если таких чисел нет, выведите -1.


Желательно на паскале

  1. Ответ на вопрос
    Ответ на вопрос дан nelle987

    Храним в памяти 3 последних считанных числа. Для каждой такой тройки проверяем, верно ли, что a[i] - a[i - 1] = a[i - 1] - a[i - 2] > 0. Если это так, выводим тройку, устанавливаем флажок found и выходим из цикла. Если после завершения работы цикла found = false, то тройка не найдена, нужно вывести -1.

    В PascalABC.NET тип integer хранит числа до 2 с лишним миллиардов, все числа и разность чисел должны в нем поместиться.

    Код (PascalABC.NET 3.4.2.1837):

    begin

     var values := new integer[3];

     var n := readinteger;

     (values[1], values[2]) := readinteger2;

     var prev_diff := values[1] - values[0];

     var found := false;

     for var i := 3 to n do begin

       values[i mod 3] := readinteger;

       var diff := values[i mod 3] - values[(i - 1) mod 3];

       if (diff = prev_diff) and (diff > 0) then begin

         print(values[(i - 2) mod 3], values[(i - 1) mod 3], values[i mod 3]);

         found := true;

         break;

       end;

       prev_diff := diff;

     end;

     if not found then print(-1);

    end.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.