Олимпиадная задача "Котлеты" - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Задача H. Котлеты (Время: 1 сек. Память: 16 Мб) На сковородке одновременно можно положить k котлет. Каждую котлету нужно с каждой стороны обжаривать m минут непрерывно. За какое наименьшее время удастся поджарить с обеих сторон n котлет? Входные данные В единственной строке входного файла INPUT.TXT записано три натуральных числа: k, m, n, не превышающих 30000. Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное число – минимальное время, за которое можно поджарить все котлеты. Вот решение, но оно не подходит под все тесты..
var
 k,m,n:longint;
 F1:text;
 summ:longint;
begin
 
 Assign(F1,'input.txt');
 Reset(F1);
 Readln(F1,k,m,n);
 close(F1);
 summ:=n div k;
 if( n mod k <> 0) then inc(summ);
 summ:=2*m*summ;
 Assign(F1,'output.txt');
 Rewrite(F1);
 writeln(F1, summ);
 
 close(F1);

end.
Все из-за того, что можно жарить котлеты таким образом: 1я(1я сторона), 2я(1я сторона)...2я(2я сторона), 3я(2я сторона)...1я (2ясторона), 3я (2я сторона) Есть идеи насчет алгоритма такой жарки?

Решение задачи: «Олимпиадная задача "Котлеты"»

textual
Листинг программы
var
  k,m,n,v:dword;
begin
  read(k,m,n);
  v:=n div k*2*m;
  if n mod k>0 then if k div 2<n mod k then v:=v+m*2 else v:=v+m;
  if n<=k then v:=2*m;
write(v)
end.

Объяснение кода листинга программы

  1. В коде используется язык программирования Free Pascal.
  2. Код решает олимпиадную задачу Котлеты.
  3. В коде используются следующие переменные: k, m, n, v (k, m, n - целочисленные значения, v - результат вычислений).
  4. В первой строке кода происходит чтение трех целочисленных значений k, m, n из стандартного ввода.
  5. Во второй строке кода происходит вычисление значения переменной v по формуле: v = n div k 2 m (где div - оператор целочисленного деления).
  6. В третьей и четвертой строках кода происходит проверка значения переменной n mod k (остаток от деления n на k) и, если остаток больше 0, то выполняется следующая проверка: если k div 2 меньше n mod k, то значение переменной v увеличивается на 2 * m, иначе значение переменной v увеличивается на m.
  7. Если значение переменной n меньше или равно k, то значение переменной v устанавливается равным 2 * m.
  8. В последней строке кода значение переменной v выводится на стандартный вывод.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5