Задача 1-Сокращаем перемены
Ограничение времени: | 1 с |
Ограничение памяти: | 2048 M |
Требуется подсчитать, на сколько минут раньше будет заканчиваться k-й урок, если все перемены сократить на 5 минут.
Формат входных данных
Вводится одно натуральное число k, не превосходящее 7.
Формат выходных данных
Выведите одно натуральное число — время в минутах.
Пример
Ввод | Вывод |
---|---|
3 | 10 |
Решение:
var
k:integer;
begin
readln(k);
case k of
1..7:writeln(5*k-5);
else
writeln('уроков не может быть больше 7');
end;
end.
Задача 2-Шестеренки
Ограничение времени: | 1 с |
Ограничение памяти: | 2048 M |
Даны две сцепленные шестеренки. У одной шестеренки N зубцов, у другой — K. Требуется найти, какое минимальное число поворотов на один зубчик требуется сделать, чтобы шестеренки вернулись в исходное состояние.
Формат входных данных
Вводится два натуральных числа N и K, каждое из которых не превосходящих 10 миллионов. Каждое число вводится в отдельной строке.
Формат выходных данных
Выведите искомое количество зубчиков. Гарантируется, что оно не более миллиарда.
Пример
Ввод | Вывод |
---|---|
2 3 | 6 |
6 21 | 42 |
Решение
var
N, K, c, sum: longint;
N, K, c, sum: longint;
function nok(N,K:longint):longint;
var i:longint;
begin
for i:=1 to N do
if (N mod i = 0) and (K mod i = 0) then nok:=i;
end;
begin
read(N,K);
N:=N div nok(N,K);
K:=K div nok(N,K);
repeat
sum := sum + N;
until (sum mod K) = 0;
write(sum*nok(N,K));
end.
var i:longint;
begin
for i:=1 to N do
if (N mod i = 0) and (K mod i = 0) then nok:=i;
end;
begin
read(N,K);
N:=N div nok(N,K);
K:=K div nok(N,K);
repeat
sum := sum + N;
until (sum mod K) = 0;
write(sum*nok(N,K));
end.
Задача 4-Распаковка строчки
Ограничение времени: | 1 с |
Ограничение памяти: | 2048 M |
Будем рассматривать только строчки, состоящие из заглавных латинских букв. Например, рассмотрим строкуAAAABCCCCCDDDD. Длина этой строки равна 14. Поскольку строка состоит только из латинских букв, повторяющиеся символы могут быть удалены и заменены числами, определяющими количество повторений. Таким образом, данная строка может быть представлена как 4AB5C4D. Длина такой строки 7. Описанный метод мы назовем упаковкой строки.
Напишите программу, которая берет упакованную строчку и восстанавливает по ней исходную строку.
Формат входных данных
Программа получает на вход одну упакованную строку. В строке могут встречаться только конструкции вида nA, где n — количество повторений символа (целое число от 2 до 99), а A — заглавная латинская буква, либо конструкции вида A, то есть символ без числа, определяющего количество повторений. Максимальная длина строки не превышает 80. Входная строка обязательно заканчивается символом перевода строки.
Формат выходных данных
В выходной файл выведите восстановленную строку.
Пример
Ввод | Вывод |
---|---|
3A4B7D | AAABBBBDDDDDDD |
22D7AC18FGD | DDDDDDDDDDDDDDDDDDDDDDAAAAAAACFFFFFFFFFFFFFFFFFFGD |
Решение
var
s:string;
i,k:integer;
begin
readln(s);
i:=1;
while i<=length(s) do
begin
k:=0;
while (s[i]>='0') and (s[i]<='9') do begin
k:=k*10;
k:=k+ord(s[i]) - ord('0');
inc(i);
end;
if k=0 then
write(s[i])
else
while k>0 do begin
dec(k);
write(s[i]);
end;
inc(i);
end;
end.