Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

НОД на отрезках

(Время: 1 сек. Память: 32 Мб Сложность: 46%)

Задан числовой массив A[1..N]. Необходимо выполнить M операций вычисления наибольшего общего делителя среди всех чисел отрезка A[L..R].

Входные данные

Первая строка входного файла INPUT.TXT содержит число N – размер массива (N ≤ 105). Во второй строке записаны N чисел – элементы массива (целые числа от 1 до 109). Третья строка содержит натуральное число M – количество запросов вычисления НОД (M ≤ 30 000). Следующие M строк содержат пары чисел L и R (1 ≤ L ≤ R ≤ N), описывающие отрезки.

Выходные данные

В выходной файл OUTPUT.TXT для каждого запроса выведите значение НОД на отрезке через пробел.

Пример

INPUT.TXTOUTPUT.TXT
15
2 2 2 1 5
2
2 3
2 5
2 1

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Введение
 Целочисленная арифметика
 Алгоритмы сортировки
 Длинная арифметика
 C++ Standard Template Library
 Динамическое программирование
 Комбинаторика
 Вычислительная геометрия
 Строки
 Структуры данных
 Теория графов - 1
 Теория графов - 2
 Статические RSQ и RMQ
 Sqrt-декомпозиция
 Дерево Фенвика
 Дерево отрезков
 A. НОД на отрезках
 B. RSQ с изменением элемента
 C. RMQ с изменением элемента
 D. НОД с изменением элемента
 E. Range Maximum Query
 F. Дерево с изменением отрезка

Красноярский краевой Дворец пионеров, (c)2006 - 2018, ICQ: 151483, E-mail: admin@acmp.ru