Розв'язки деяких задач з сайту 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.
Две окружности
Определить количество точек пересечения двух окружностей.
Входные данные
6 чисел x1
, y1
, r1
, x2
, y2
, r2
, где x1
, y1
, x2
, y2
- координаты центров окружностей, а r1
, r2
– их радиусы. Все числа - действительные, не превышают по модулю 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.
Бабочка-санитар
Школьники, идя из дому в школу или наоборот - со школы домой, любят кушать конфеты. Но, как всегда, это приятное дело иногда имеет неприятные последствия – детки часто выбрасывают обертки на школьном дворе.
Мурзик всегда следил за чистотой школьного двора и ему в этом с радостью помогали бабочки, благодарные за прекрасные фотографии, сделанные им. Бабочки могли использовать собственные крылышки как линзы, причем они могли изменять их фокусное расстояние. Заметив обертку от конфетки, лежавшую на школьном дворе в точке с координатами X1, Y1, бабочка перелетала в точку с координатами X2
, Y2
, Z2
, расположенную на пути солнечных лучей к обертке и, изменяя фокусное расстояние своих крылышек-линз, сжигали обертку от конфеты.
Какую оптическую силу D
имели крылышки-линзы бабочки в этот момент?
Входные данные
В первой строке 2 числа: координаты X1
, Y1
обертки от конфетки. Во второй – 3 числа: координаты X2
, Y2
, Z2
бабочки в момент сжигания обертки.
Все входные данные целые числа, не превышающие по модулю 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 ≤ 100
, m < 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.