Задача I. Часики, площадь и … «Стрелки часов - две руки,
которые отнимают у нас время.»
Представьте себе пару одинаковых классических часов с двумя стрелками и круглым циферблатом. Часы показывают разное время. Ваша задача – вычислить площадь части циферблата (кругового сектора), которая начинается от часовой стрелки первых часов и продолжается до часовой стрелки вторых часов.
Входные данные
В первой строке записаны показания первых часов в формате H M S U, где H –часы, M - минуты, S – секунды и U – сотые доли секунды (0 ≤ H < 12, 0 ≤ M, S < 60, 0 ≤ U < 100). Во второй строке в том же формате записаны показания вторых часов. В третьей строке содержится радиус циферблата (вещественное число).
Выходные данные
Запишите вычисленную площадь с тремя дробными цифрами.
5: 001 {1 - 2 - 4 - 5}
50: 0100010 {1 - 2 - 3 - 6 - 12 - 24 - 25 - 50}
99: 010000101 {1 - 2 - 3 - 6 - 12 - 24 - 48 - 49 - 98 - 99}
В данном случае достаточно просто идти с конца. Скажем, если есть число 99, очевидно, последней командой было "прибавить 1". Далее, 98 - может быть получено умножением на 2, и следует выбирать именно эту команду - программа точно не будет превосходить по размеру вариант, где последней операцией является сложение.
Например,
98 - 49 - 48 короче, чем
98 - 97 - 96 - 48
//1
Var
a,b,c,max,i:integer;
ca,cb,cc,smax:string;
begin
max:=-1;
readln(ca);
readln(cb);
readln(cc);
for i:=1 to 3 do
begin
if strtoint(ca[i])>max then
begin
smax:=ca;
max:=strtoint(ca[i]);
end;
if strtoint(ca[i])>max then
begin
smax:=cb;
max:=strtoint(ca[i]);
end;
if strtoint(cc[i])>max then
begin
smax:=cc;
max:=strtoint(ca[i]);
end;
end;
writeln(smax);
end.
Пример ввода:
123
456
908
Пример вывода:
908
//2
Var
n,n1:integer;
s:string;
begin
readln(n);
n1:=n;
if (n=11) or (n=12) or (n=13) or (n=14) then s:='лет' else
begin
n:=n mod 10;
case n of
0:s:='лет';
1:s:='год';
2:s:='года';
3:s:='года';
4:s:='года';
5:s:='лет';
6:s:='лет';
7:s:='лет';
8:s:='лет';
9:s:='лет';
end;
end;
writeln('Мне ',n1,' ',s);
end.
Пример ввода:
18
Пример вывода:
Мне 18 лет