Россия, ия - TI Задача D. Веселая ферма Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Фермер Джон очень любит всех своих N куриц и заботится о их здоровье. Он хочет, чтобы все было идеально, поэтому все его курицы имеют абсолютно одинаковый вес. Однажды Джон случайно споткнулся об одну из куриц и она на него очень обиделась. Курица решила сесть на диету и нарушить идеальный баланс на ферме. Фермеру Джону очень повезло узнать, что одна из куриц стала весить совсем немного мень- ше и теперь Джон вынужден найти диверсантку, ведь без идеального баланса ферма перестанет существовать! Для решения этой задачи фермер Джон обратился за к богине правосудия Фемиде, ведь у нее есть чудесные весы. Но богиня, узнав какие чудесные грибы выращивает Джон, не захо- тела фермеру просто так и предложила ему следующие условия: на каждую чашу весов фермер может посадить сколько угодно куриц, если чаши весов окажутся в равновесии, то он дарит ей А грибов, а если чаша склонится в любую из сторон - В грибов (при этом фермер Джон видит, какая из чаш весов легче). Джон очень любит свои грибы и не хочет ими делиться. Требуется написать программу, кото- рая по заданному количеству куриц N при условии, что только одна из них легче других, укажет минимальное количество грибов, с которых обиженная курица гарантированно будет об- наружена. Формат входных данных Во входных данных в единственной строке находятся три целых числа: N - количество куриц (2 << 106); А - количество грибов, затрачиваемых в случае равновесия на весах (1 < A< 106), В - количество грибов, затрачиваемых в случае перевеса одной из сторон. Все числа разделены пробелом. Формат выходных данных В выходных данных напечатайте единственное число - минимальное количество грибов, с гцью которых гарантированно будет обнаружена обиженная курица. Примеры стандартный ввод стандартный вывод 1 2 1 1 2 2 1 2
begin var n := ReadlnInteger('n = '); var m := ReadlnInteger('m = '); var rand := ReadlnInteger('Для ручного ввода нажмите 0');
if rand = 0 then begin a := new integer[m, n]; for var i := 0 to m-1 do for var j := 0 to n-1 do a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = '); end else a := MatrixRandom(m, n, 1, 100); Println(a);
var b := ArrGen(n, x -> 1); for var i := 0 to m-1 do for var j := 0 to n-1 do if j mod 2 = 0 then b[j] := b[j] * a[i, j];
b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println(); end.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 function FS(a,b:real):=0.5*a*b; begin var a,b:real; Write('Катеты первого треугольника: '); Read(a,b); var S1:=FS(a,b); Write('Катеты второго треугольника: '); Read(a,b); var S2:=FS(a,b); if S1>S2 then Writeln('Площадь первого треугольника больше') else if S1<S2 then Writeln('Площадь второго треугольника больше') else Writeln('Площади треугольников равны') end.
Тестовое решение Катеты первого треугольника: 4.18 6 Катеты второго треугольника: 5.4 3.9 Площадь первого треугольника больше
a: array [,] of integer;
begin
var n := ReadlnInteger('n = ');
var m := ReadlnInteger('m = ');
var rand := ReadlnInteger('Для ручного ввода нажмите 0');
if rand = 0 then begin
a := new integer[m, n];
for var i := 0 to m-1 do
for var j := 0 to n-1 do
a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = ');
end
else a := MatrixRandom(m, n, 1, 100);
Println(a);
var b := ArrGen(n, x -> 1);
for var i := 0 to m-1 do
for var j := 0 to n-1 do
if j mod 2 = 0 then
b[j] := b[j] * a[i, j];
b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println();
end.
function FS(a,b:real):=0.5*a*b;
begin
var a,b:real;
Write('Катеты первого треугольника: '); Read(a,b);
var S1:=FS(a,b);
Write('Катеты второго треугольника: '); Read(a,b);
var S2:=FS(a,b);
if S1>S2 then Writeln('Площадь первого треугольника больше')
else
if S1<S2 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение
Катеты первого треугольника: 4.18 6
Катеты второго треугольника: 5.4 3.9
Площадь первого треугольника больше