Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Симметричная матрица
 
Дана квадратная матрица. Проверить, является ли она симметричной относительно
главной диагонали.
 
Входные данные. В файле INPUT.TXT записано число n (0<n<=100). 
В следующих n строках записано по n целых чисел от -32768 до 32767. 
 
Выходные данные. В файл OUTPUT.TXT вывести YES, 
если матрица симметрична относительно главной диагонали, иначе вывести NO.
 
Пример файла INPUT.TXT
3
1 2 3
2 4 5
3 5 6
 
Пример файла OUTPUT.TXT
YES
 
Нолики
 
В матрице найти положение нулевого элемента.
 
Входные данные
Формат входных данных как в примере.
Хотя бы один нулевой элемент в матрице всегда существует.
 
Выходные данные
Вывести сначала номер строки, а затем - номер столбца нулевого элемента. 
Если в матрице несколько нулей, выдать позицию любого из них.
 
Пример входного файла
3 4
0 1 2 3
4 5 0 1
2 3 4 5
 
Пример выходного файла
2 3
 
ГАИ#18782
ГАИ
 
Вдоль шоссе в точках X1,X2,...,XN расположены посты ГАИ. 
В точке X произошло мелкое ДТП (дорожно-транспортное происшествие).
Требуется определить, какой из постов ГАИ расположен ближе всего
к этой точке, чтобы с него послать к месту происшествия наряд милиции.
 
Входные данные
Во входном файле записано сначала число N - количество пунктов ГАИ. (1<=N<=100)
Далее следуют координаты расположения постов ГАИ на прямом шоссе
(целые числа от -10000 до 10000). Далее идет координата точки,
в которой произошло ДТМ (целое число от -10000 до 10000).
 
Выходные данные
В выходной файл требуется вывести одно число - номер поста ГАИ,
с которого нужно послать наряд к месту ДТП. Если несколько постов
ГАИ находятся на одинаковом расстоянии от точки ДТП, выведите любой из них.
 
Пример входного файла
5
10 2 8 -7 3
7
 
Пример выходного файла
3
Минимум в таблице
 
Дана таблица чисел, состоящая из N строк по M чисел в каждой.
Все числа в таблице - натуральные, не превышающие 1000.
Требуется найти наименьшее число в этой таблице.
 
Входные данные
Во входном файле записано сначала число N - количество строк,
а затем число M - количество столбцом таблицы (1<=N<=100, 1<=M<=100).
Далее идет сама таблица.
 
Выходные данные
В выходной файл выведите наименьшее число, которое встречается в таблице.
 
Пример входного файла
3 4
6 4 10 4
3 7 5 7
6 3 4 3
 
Пример выходного файла
3
 
 
Количество операций
 
Дана программа сортировки (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.

Сортировка времени
 
Во входном файле записано сначала число N (1<=N<=100), а затем
N моментов времени. Каждый момент времени задается 3 целыми числами - 
часы (от 0 до 23), минуты (от 0 до 60) и секунды (от 0 до 60).
 
В выходной файл выведите моменты времени, упорядоченные в порядке
неубывания (момент времени также выводится в виде трех чисел, ведущие нули
выводить не обязательно)
 
Пример входного файла:
4
10 20 30
7 30 00
23 59 59
13 30 30
 
Пример выходного файла:
7 30 0
10 20 30
13 30 30
23 59 59
 
Троллейбусы одного маршрута проходят через остановку каждые k (1<=k<=500) минут. Известны времена прихода пассажиров на эту остановку. Если пассажир приходит на остановку в момент прихода троллейбуса, то он успевает уехать на нем.
 
Напишите программу, которая бы определяла, во сколько должен пройти первый троллейбус (это время от 0 до k-1), чтобы:
1) Суммарное время ожидания троллейбуса для всех пассажиров было минимально.
2) Максимальное из времен ожидания троллейбуса было минимально.
 
Входные данные
В строке записано сначала число k, затем - число N (0<=N<=100000). Затем идет N чисел, задающих времена прихода пассажиров 
на остановку. Каждое из этих чисел - целое от 0 до 100000.
 
Выходные данные
Запишите два числа, являющиеся ответами на первый и второй вопросы задачи соответственно. 
Если решений несколько, выведите любое из них.

Примеры
Входные данные Выходные данные
1
100 5
0 210 99 551 99
10
51
 
 
Дан массив. Требуется удалить из него элемент, стоящий на месте номер B, сдвинув все последующие элементы влево.
 
Входные данные
Во входном файле записано сначала число N - количество элементов массива (2<=N<=100), затем N чисел из диапазона Integer - элементы массива, а затем число B (1<=B<=N).
 
Выходные данные
В выходной файл выведите N-1 число - элементы массива с удаленным B-м элементом.
 
Примечание
Вы должны удалить элемент непосредственно из массива, а не сделать вид при выводе данных, что у вас такого элемента нет. Также вы не  должны для этого заводить в программе дополнительный массив.
 
Формат входных данных
Во входных данных записана последовательность натуральных чисел, не превышающих 1000. Последовательность заканчивается числом 0. Количество чисел в последовательности не превышает 100.
 
Формат выходных данных
Выведите в выходной файл количество чисел в последовательности (не считая 0), а потом сами числа.
 
В некотором государстве действует N фирм, конкурирующих между собой.
У каждой фирмы есть некоторая прибыль в год, равная V[i]
американских рублей.  У царя есть любимые фирмы,
а есть нелюбимые. Соответственно, налог для всех фирм разный и назначается
царем в индивидуальном порядке.
Налог на i-ую фирму равен p[i] процентов.
Собиратели статистики решили посчитать,
с какой фирмы в государственную казну идет наибольший доход
(в казну идут все налоги). К сожалению, они не учили в детстве
ни математику, ни информатику (так что учитесь, дети!),
и их задача резко осложняется. Помогите им в этой нелегкой задаче.
 
Входные данные
-----------------------
сначала записано число N - число фирм (0<N<=100).
Далее идет N целых неотрицательных чисел, не превышающих 154 - доходы фирм,
а затем еще N целых чисел от 0 до 100 - налоги фирм в процентах.
 
Выходные данные
------------------------
В выходной файл выведите одно число - номер фирмы, от которой государство
получает наибольший налог. Если таких фирм несколько, выведите любую из них.
 
Пример входного файла:
3
100 1 50
0 100 3
 
Пример выходного файла:
3
 
(Та же задача, что и "Количество единиц, двоек, троек и т.д. #1", только может быть введено до 100000 чисел)
 
Вводятся числа от 1 до 9 до тех пор,
пока не будет введен 0. Всего будет введено не более 100000 чисел
 
Посчитать количество единиц в этой последовательности,
количество двоек, количество троек и так далее (в выходном
файле всегда должно быть 9 чисел).
 
 
Пример входного файла
1 1 4 1 5 8 6 3 5 1 0
 
Пример выходного файла:
4 0 1 1 2 1 0 1 0
 
Вводятся числа от 1 до 9 до тех пор, 
пока не будет введен 0. Всего будет введено не больше 100 чисел.
 
Посчитать количество единиц в этой последовательности, 
количество двоек, количество троек и так далее (в выходном
файле всегда должно быть 9 чисел).
 
 
Пример ввода:
1 1 4 1 5 8 6 3 5 1 0         
 
Пример вывода:
4 0 1 1 2 1 0 1 0
 
Среди заданных N натуральных чисел определить сколько среди них пар одинаковых чисел.

Входные данные
В первой строке задается натуральное число N - количество чисел. Во второй строке - N натуральных чисел (\(2<=N<=100\), все числа не превышают 100).

Выходные данные
Выведите одно число - количество пар одинаковых чисел.
 
 
Примеры
Входные данные Выходные данные Примечание
1
5
1 3 2 2 3
2  
2
4
1 1 1 1
6
Пару одинаковых чисел образовывают любые два числа 
последовательности, поэтому ответом будет число пар, которое вообще
может быть (это пары чисел, стоящих на местах: (1,2), (1,3), (1,4),
(2,3), (2,4), (3,4)).
Вводится сначала число N, а затем N чисел. Выведите эти N чисел в следующем порядке: сначала выводятся числа, стоящие на нечетных местах, а затем - стоящие на четных местах.
 
Входные данные
Вводится число N (0<N<100), а затем N чисел. Каждое число не превышает 100 по модулю.
 
Выходные данные
Выведите N чисел в заданном порядке.
 
Примеры
Входные данные Выходные данные
1
7
2 4 1 3 5 3 1
2 1 5 1 4 3 3
Вводится сначала число N, а затем N чисел. Выведите эти N чисел в следующем порядке: сначала выводятся все нечетные числа в том порядке, в каком они встречались во входном файле, а затем - все четные.
 
Входные данные
Вводится число N (\(0<N<100\)), а затем N чисел. Каждое число не превышает по модулю 100.
 
Выходные данные
Выведите N чисел в обратном порядке.

 
Примеры
Входные данные Выходные данные
1
7
2 4 1 3 5 3 1
1 3 5 3 1 2 4
Вводится сначала число N, а затем N чисел. Выведите эти N чисел в обратном порядке.
 
Входные данные
Вводится число N (0<N<100), а затем N чисел. Каждое число не превышает 100 по модулю.
 
Выходные данные
Выведите N чисел в обратном порядке.
 
Примеры
Входные данные Выходные данные
1
7
2 4 1 3 5 3 1
1 3 5 3 1 4 2
 
Даны два числа. Найти их наибольший общий делитель.
 
Входные данные: Вводятся два натуральных числа, не превышающих 10^9, (запись 10^9 обозначает "10 в 9-й степени", то есть 1000000000).
Выходные данные: Выведите НОД введенных чисел

Примеры
Входные данные Выходные данные
1 42 12 6
Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число.
 
Входные данные
Вводится сначала число N - количество членов последовательности, а затем N чисел - члены последовательности.
 
Выходные данные
Выведите одно число - сколько раз в последовательности встречается максимальное число.
 
Примеры
Входные данные Выходные данные
1
7
1 4 2 5 2 5 3
2
По заданному числу определите число из диапазона от 1 до N с максимальной суммой делителей (включая непростые делители, 1 и само число). Если таких чисел несколько, выведите максимальное из них.


Входные данные
На вход подается натуральное число.

Выходные данные
Выведите на экран ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 5 4
Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N включительно таких, что их сумма цифр делится на K.


Входные данные
На вход подаются два числа в одной строке, разделенные пробелом.

Выходные данные
Выведите на экран ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 100 3 33
2 22 4 5
Поделиться
Класснуть