Блог

Більше розв'язків олімпіадних задач можна знайти на блозі "Оліипіадні задачі з програмування".
Перейти до бллогу

Розв'язки деяких задач з сайту e-olymp.com


Простая задача?

Программа считывает двузначное число и выводит через пробел каждую цифру отдельно.

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

Натуральное число из промежутка от 10 до 99 включительно.

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

Два одноцифровых числа, разделенных пробелом.

Лимит времени 0.3 секунд

Лимит использования памяти 256 MiB

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

23                                             2 3

var a,b:integer;
begin
read(a);
writeln(a div 10,' ',a mod 10);
end.

Цифры

Вычислить количество цифр целого неотрицательного числа n.

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

Одно не отрицательное целое число n (0 ≤ n ≤ 2*109).

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

Количество цифр в числе n.

Лимит времени 1 секунда

Лимит использования памяти 64 MiB

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

12343                                                    5
var n, k: longint;
begin
read (n);
k:=0;
while n>0 do
begin
n:=n div 10;
k:=k+1;
end;
write (k);
end.

Две окружности

Определить количество точек пересечения двух окружностей.

prb4

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

6 чисел x1y1r1x2y2r2, где x1y1x2y2 - координаты центров окружностей, а r1r2 – их радиусы. Все числа - действительные, не превышают по модулю 1000000000, заданы не более чем с 3-мя знаками после запятой.

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

Количество точек пересечения. Если точек пересечения бесконечно много, то вывести -1.

Лимит времени 1 секунда

Лимит использования памяти 64 MiB

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

0 0 5 5 0 1                                             2
uses crt;
var d, x1, y1, r1, x2, y2, r2: real;
begin read (x1, y1, r1, x2, y2, r2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
if (x1=x2) and (y1=y2) and (r1=r2) then  write ('-1')
else
begin
if d<r1+r2 then write ('2');
if d=r1+r2 then write ('1');
if d>r1+r2 then write ('0');
end;
readkey;
end.

Бабочка-санитар

Школьники, идя из дому в школу или наоборот - со школы домой, любят кушать конфеты. Но, как всегда, это приятное дело иногда имеет неприятные последствия – детки часто выбрасывают обертки на школьном дворе.

prb57

Мурзик всегда следил за чистотой школьного двора и ему в этом с радостью помогали бабочки, благодарные за прекрасные фотографии, сделанные им. Бабочки могли использовать собственные крылышки как линзы, причем они могли изменять их фокусное расстояние. Заметив обертку от конфетки, лежавшую на школьном дворе в точке с координатами X1Y1, бабочка перелетала в точку с координатами X2Y2Z2, расположенную на пути солнечных лучей к обертке и, изменяя фокусное расстояние своих крылышек-линз, сжигали обертку от конфеты.

Какую оптическую силу D имели крылышки-линзы бабочки в этот момент?

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

В первой строке 2 числа: координаты X1Y1 обертки от конфетки. Во второй – 3 числа: координаты X2Y2Z2 бабочки в момент сжигания обертки.

Все входные данные целые числа, не превышающие по модулю 1000.

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

Единственное число – оптическая сила крылышек-линз D, вычисленная с точностью до 3-х знаков после запятой за правилами математических округлений.

Лимит времени 1 секунда

Лимит использования памяти 64 MiB

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

10 20                                                    0.010
10 20 100
var x1, y1, x2, y2, z2, d, f: real;
begin
read (x1, y1, x2, y2, z2);
f:=sqrt(sqr(x2-x1)+sqr(y2-y1)+z2*z2);
d:=1/f;
write (d:100:3);
end.

Пираты и монеты

n пиратам удалось справедливо разделить клад из m золотых монет - каждый получил свою часть согласно своему пиратскому рангу и стажу. Самый молодой пират взял a монет, а каждый следующий пират брал на одну монету больше, чем предыдущий его коллега. Последним был капитан, которому досталось вдвое больше от запланированного, очевидно, что после него монет больше не осталось.

Сколько было пиратов вместе с капитаном, если известны a и m. Так как капитан без команды просто пират, то n > 1.

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

Два натуральных числа a и m (1 ≤ a ≤ 100m < 15150). Входные данные корректны.

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

Количество пиратов n.

Лимит времени 1 секунда

Лимит использования памяти 64 MiB

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

5 25                                                      3
program z1;
uses crt;
var a, m, n, k:integer;
begin read (a, m);
n:=0;
while m>=0 do
begin
m:=m-(a+n);
n:=n+1;
end;
k:=n-1;
write (k);
readkey;
end.

Збірники задач та розв’язків

III етапу Всеукраїнських учнівських олімпіад з інформатики 2012-2013 та 2013-2014 н.р.
Перейти до сторінки зі збірником