Вывод формулы

251 задача
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
В городе, в котором живут друзья Андрей и Борис, метро состоит из единственной кольцевой линии, вдоль которой на равном расстоянии друг от друга расположены n станций, пронумерованных от 1 до n. Участок линии метро между двумя соседними станциями называется перегоном.

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

Друзья заметили, что выполняется следующее условие: если загадать некоторую станцию X и выписать для нее два числа: Da — расстояние от станции, на которой живет Андрей, до станции X и Db — расстояние от станции, на которой живет Борис, до станции X, то полученная пара чисел [Da, Db] будет однозначно задавать станцию X.

Например, если n = 4, Андрей живет на станции 1, а Борис живет на станции 2, то станция 1 задается парой [0, 1], станция 2 — парой [1, 0], станция 3 — парой [2, 1] и станция 4 — парой [1, 2].

Их одноклассник Сергей живет в соседнем городе и не знает, на каких станциях живут Андрей и Борис. Чтобы найти друзей, он заинтересовался, сколько существует вариантов пар станций A, B, таких что если Андрей живет на станции A, а Борис — на станции B, то выполняется описанное выше условие.

Требуется написать программу, которая по числу станций n на кольцевой линии определяет искомое количество вариантов.

Формат входного файла
Первая строка входного файла содержит одно целое число n (3 ≤ n ≤ 40 000).
Формат выходного файла
Выходной файл должен содержать одно число — искомое количество вариантов.

Примеры входных и выходных файлов
Ввод Вывод
4 8
5 20

Пояснения к примерам
В первом примере подходят следующие варианты:
- Андрей живет на станции 1, а Борис на станции 2;
- Андрей живет на станции 1, а Борис на станции 4;
- Андрей живет на станции 2, а Борис на станции 1;
- Андрей живет на станции 2, а Борис на станции 3;
- Андрей живет на станции 3, а Борис на станции 2;
- Андрей живет на станции 3, а Борис на станции 4;
- Андрей живет на станции 4, а Борис на станции 1;
- Андрей живет на станции 4, а Борис на станции 3.
 
Для проведения церемонии открытия олимпиады по информатике организаторы осуществляют поиск подходящего зала. Зал должен иметь форму прямоугольника, длина каждой из сторон которого является целым положительным числом.
Чтобы все участники церемонии поместились в зале, и при этом он не выглядел слишком пустым, площадь зала должна находиться в пределах от A до B квадратных метров, включительно.
Чтобы разместить на стенах зала плакаты, рассказывающие об успехах школьников на олимпиадах, но при этом не создать ощущения, что успехов слишком мало, периметр зала должен находиться в пределах от C до D метров, включительно.
Прежде чем сделать окончательный выбор, организаторы олимпиады решили просмотреть по одному залу каждого подходящего размера. Залы с размерами Y × Z и Z × Y считаются одинаковыми. Чтобы понять необходимый объем работ по просмотру залов организаторы задались вопросом, сколько различных залов удовлетворяют приведенным выше ограничениям. Требуется написать программу, которая по заданным A, B, C и D определяет количество различных залов, площадь которых находится в пределах от A до B, а периметр — от C до D, включительно.

Формат входного файла
Входной файл содержит четыре разделенных пробелами целых числа: A, B, C и D (1<=A<=B<=109 , 4<=C<=D<=109 ).
Формат выходного файла
Выходной файл должен содержать одно число — искомое количество залов.

Ввод:
2 10 4 8
Вывод:
3

Пояснения к примеру
В примере ограничениям удовлетворяют залы следующих размеров: 1 × 2, 1 × 3, 2 × 2
✓ 19✗ 1531 000средняяВойти и решать

У Джона Доу есть массив a из n элементов. Джон хочет найти величину , то есть сумму квадратов разностей элементов массива по всем возможным парам i, j.

Например для массива {1, 2, 3} такая величина будет равна (1 - 1)2 + (1 - 2)2 + (1 - 3)2 + (2 - 1)2 + (2 - 2)2 + (2 - 3)2 + (3 - 1)2 + (3 - 2)2 + (3 - 3)2 = 0 + 1 + 4 + 1 + 0 + 1 + 4 + 1 + 0 = 12

Найдите остаток от деления S на 108.

Напомним, как работать с остатками от деления. Остаток от деления числа a на число b обозначим как . Верны следующие соотношения:

  • (для a ≥ b).

 

К примеру, вы хотите посчитать величину . Перемножить эти три числа в стандартном типе данных вам не удастся, но можно воспользоваться первым соотношением и посчитать сначала Теперь можно перемножить получившееся число и 107 + 3 и получить .

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

В первой строке записано целое число n (1 ≤ n ≤ 106) — количество элементов массива. Во второй строке через пробел записаны n целых чисел a1, ..., an (1 ≤ ai ≤ 109).

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

Выведите остаток от деления S на 108.

Примеры тестов

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

3
1 2 3
Выходные данные
12
Входные данные
5
100 1 9 1 3
Выходные данные
74928
Входные данные
2
1000000000 1
Выходные данные
2

Примечание

Тесты поделены на несколько групп, но оцениваются отдельно.

  • n, ai ≤ 1000 – 10 баллов
  • n ≤ 5000 – 10 баллов
  • n ≤ 106 ai ≤ 5000 – 30 баллов
  • Без дополнительных ограничений — 50 баллов

Например, если вы решили задачу для n ≤ 5000 и произвольных ai вы получите 20 баллов (первая и вторая группы).


У Фёдора есть массив различных натуральных чисел. Известно, что чисел N. Фёдор хочет найти в массиве количество троек x, y и z (x < y < z), таких, что x2 + y2 = z2. Помогите ему в этом.

Формат входных данных

В первой строке находится число N (3 ≤ N ≤ 3000). На следующей строке находятся N натуральных чисел, каждое из которых не превышает 3000.

Решения, корректно работающие при N ≤ 100, получат не менее 50 баллов.

Формат выходных данных

В единственной строке нужно вывести одно число — ответ на задачу.

Ввод:

5
5 12 13 9 15

Вывод:
2
21743#21743
Написание конспекта является процессом

1. сбора информации
2. обработки информации
3. хранения информации
4. передачи информации
21742#21742
Телефонный разговор является процессом

1. сбора информации
2. обработки информации
3. хранения информации
4. передачи информации
21741#21741
Работа на поисковом сервере является процессом

1. сбора информации
2. обработки информации
3. хранения информации
4. передачи информации
21740#21740
Чтение книги является процессом

1. сбора информации
2. обработки информации
3. хранения информации
4. передачи информации
21632#21632
Что из перечисленного относится к формальным языкам?

1. дорожный знак
2. звук флейты
3. ничего из перечисленного
4. все перечисленное
21631#21631
Что из перечисленного относится к естественным языкам?

1. дорожная карта
2. звук флейты
3. рычание тигра
4. все выше перечисленное
21621#21621
Информация, отражающая действительное положение дел называется

1. верной
2. достоверной
3. избыточной
4. объективной
21620#21620
Информация, представленная на понятном пользователю языке называется

1. точной
2. актуальной
3. нужной
4. понятной
21610#21610
Деятельность человека, связанную с процессами получения, преобразования, накопления и передачи информации, называется

1. информационная деятельность
2. информационный процесс
3. информационный объект
4. информационная связь
21603#21603
К информационным процессам относятся

1. хранение, передача, изменение
2. хранение, обработка, передача
3. сохранение, открытие, вырезание
4. хранение, восприятие, удаление
21576#21576
Какая концепция характеризует информацию как сферу общения?

1. коммуникационная
2. общественная
3. коммуникативная
4. классическая
21453#21453
Что такое информация?

1. отражение внешнего мира с помощью знаков и сигналов 
2. то, что мы видим и слышим
3. тексты, аудиоинформация и картинки
4.  файлы компьютерной системы
21449#21449
Свойство объекта, которое может быть представлено конкретным значением называется

1. числовое значение
2. характеристика
3. определение
4. параметр
Количество операций
 
Дана программа сортировки (p141.pas). Требуется узнать, сколько раз
при сортировке конкретного массива с помощью этой программы
выполняется операция сравнения двух элементов массива (строка 25 программы).
 
Входные данные
Задано сначала число N (1≤N≤100), а затем N целых чисел, по модулю не превышающих 1000.
 
Выходные данные
Ваша программа должна печатать одно число - сколько
раз в процессе сортировки этого массива программой p141.pas выполнится
команда сравнения двух элементов массива.
 
Пример входного файла
5
3 1 2 4 2
 
Пример выходного файла
10

Текст программы p141.pas
const nmax=100;

var a:array[1..nmax] of integer;
    n:integer;
    i,j,g:integer;

    f1,f2:text;

begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
                                  {Чтение входных данных}
read(f1,n);
for i:=1 to n do read(f1,a[i]);
                                  {Сортировка массива}

for i:=1 to n do begin            {Подбираем число на i-ое место}

  g:=i;                           {Считаем, что самое маленькое число,
                                   которое нам встретилось, стоит на месте i}

  for j:=i+1 to n do              {Перебираем все числа с i+1 до конца массива}
    if a[j]<a[g] then g:=j;       {Если нашли число, которое меньше,
                                   чем то, что уже найдено, запоминаем его}

                                  {Меняем местами числа, стоящие на i-ом и
                                   на g-ом местах }
                                  {Если a[i]=x, a[g]=y, то после выполнения
                                   команды: }
  if i<>g then begin
    a[i]:=a[i]+a[g];                {a[i]=x+y, a[g]=y}
    a[g]:=a[i]-a[g];                {a[i]=x+y, a[g]=(x+y)-y=x}
    a[i]:=a[i]-a[g];                {a[i]=(x+y)-x=y}
                                  {То есть после этого a[i]=y, a[g]=x
                                   обмен значений произошел}
    end;

  end;

                                  {Выводим результат}
for i:=1 to n do
  write(f2,a[i],' ');
close(f1);
close(f2);
end.

Поделиться
Класснуть