Олимпиадная задача "Котлеты" - 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я сторона) Есть идеи насчет алгоритма такой жарки?

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

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.

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


СОХРАНИТЬ ССЫЛКУ