Форум программистов, компьютерный форум CyberForum.ru

Найти минимальное время, за которое можно поджарить все котлеты - C++

Восстановить пароль Регистрация
 
 
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
10.07.2015, 16:36     Найти минимальное время, за которое можно поджарить все котлеты #1
Добрый день, хочу представить вашему вниманию небольшую задачку:

Кликните здесь для просмотра всего текста
На сковородке одновременно можно положить k котлет. Каждую котлету нужно с каждой стороны обжаривать m минут непрерывно. За какое наименьшее время удастся поджарить с обеих сторон n котлет?

Входные данные

В единственной строке входного файла INPUT.TXT записано три натуральных числа: k, m, n, не превышающих 30000.

Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное число – минимальное время, за которое можно поджарить все котлеты.


Собственно, задача вроде бы простая, но выдаёт ошибки на разных тестах. Нашёл 2 теста: k = 2, m =1, n = 3 и ответ равен 3 - это правильно или нет? Мне кажется, что должен быть равен 4-м. Также точно ещё числа: k = 99, m = 100, n 100. Ответ теста = 300. Корректны ли тесты? Мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int k, m, n;
    cin >> k >> m >> n;
    if (k == 0 || m == 0 || n == 0)
        cout << 0 << endl;
    int counter = 0;
    while (n > 0)
    {
        n -= k;
        counter += m * 2;
    }
    cout << counter << endl;
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 16:36     Найти минимальное время, за которое можно поджарить все котлеты
Посмотрите здесь:

Минимальное число, которое делится нацело C++
Алгоритм(Найти максимальное совершенное число, которое в то же время меньше введенного N) C++
Минимальное количество байт, которое займёт отрицательное число C++
C++ Требуется по начальному расположению деталей на первом конвейере определить время, через которое все детали будут изготовлены
C++ Напечатать минимальное число, большее 200, которое нацело делится на 17
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D_Gon
 Аватар для D_Gon
22 / 11 / 5
Регистрация: 09.07.2015
Сообщений: 47
10.07.2015, 19:02     Найти минимальное время, за которое можно поджарить все котлеты #21
C++
1
2
3
наверно на этом
if (k == 0 || m == 0 || n == 0)
        cout << 0 << endl;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,053
10.07.2015, 19:03     Найти минимальное время, за которое можно поджарить все котлеты #22
Цитата Сообщение от Melvil Посмотреть сообщение
Кто меньше?:
Цитата Сообщение от Melvil Посмотреть сообщение
c = ceil((2 * n) / k);
* * std::cout << c*m;
C++
1
std::cout << ceil((2 * n) / k)*m;
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
10.07.2015, 19:07  [ТС]     Найти минимальное время, за которое можно поджарить все котлеты #23
Цитата Сообщение от ValeryS Посмотреть сообщение
% это остаток от деления, определен для целочисленных
например
3/2 равно 1 и остаток 1
3%2 =1
если числа кратные то остаток 0
4/2=2
4%2=0
Я имел ввиду
Цитата Сообщение от ValeryS Посмотреть сообщение
if ( !n%k )
==
Цитата Сообщение от Melvil Посмотреть сообщение
if (n%k == 0 )
Или нет?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,053
10.07.2015, 19:13     Найти минимальное время, за которое можно поджарить все котлеты #24
Цитата Сообщение от Melvil Посмотреть сообщение
Или нет?
Да
в Си любое число кроме 0 это ИСИНА 0-ЛОЖЬ
смотрим n%k допустим 3%2=1, 1 это ИСТИНА, !1 это ЛОЖЬ
берем
4%2 =0 ЛОЖЬ, !0 ИСТИНА
теперь
4%2==0 ИСТИНА
т.е
n%k == 0 и !n%k это две записи одного и того же
D_Gon
 Аватар для D_Gon
22 / 11 / 5
Регистрация: 09.07.2015
Сообщений: 47
10.07.2015, 19:16     Найти минимальное время, за которое можно поджарить все котлеты #25
Русские не сдаются:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main(){
 
    int capacity, time, raw;
 
    cin >> capacity >> time >> raw;
 
    int counter;
    
    if( raw%capacity == 0 )
        counter = 2*( raw/capacity );
    else if( raw/capacity != 0 && ( raw%capacity )*2 <= capacity )
        counter = 2*( raw/capacity ) + 1;
    else
        counter = 2*( raw/capacity ) + 2;
 
    cout << counter*time << endl;
 
    return 0;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,053
10.07.2015, 19:18     Найти минимальное время, за которое можно поджарить все котлеты #26
Цитата Сообщение от D_Gon Посмотреть сообщение
time
переименуй
это слово зарезервировано в <time.h>
D_Gon
10.07.2015, 19:21
  #27

Не по теме:

да в этой задаче эта переменная лишняя пусть выделяется

Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
10.07.2015, 19:43  [ТС]     Найти минимальное время, за которое можно поджарить все котлеты #28
Цитата Сообщение от D_Gon Посмотреть сообщение
Русские не сдаются:
Поздравляю, Accepted
D_Gon
10.07.2015, 19:47
  #29

Не по теме:

Теперь можна и поесть.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 19:55     Найти минимальное время, за которое можно поджарить все котлеты
Еще ссылки по теме:

C++ Найти минимальное количество купюр, которое необходимо использовать, чтобы выдать сумму в n гривен
C++ Графы, найти минимальное время, необходимое для выполнения всех задач
Найти минимальное количество шариков, которое необходимо перекрасить, чтобы все шарики были одного цвета C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryS
10.07.2015, 19:55     Найти минимальное время, за которое можно поджарить все котлеты
  #30

Не по теме:

Цитата Сообщение от D_Gon Посмотреть сообщение
Теперь можна и поесть.
смотри опять опоздаешь
Цитата Сообщение от D_Gon Посмотреть сообщение
похоже я неудачнег ( решил немного перекусить )

Yandex
Объявления
10.07.2015, 19:55     Найти минимальное время, за которое можно поджарить все котлеты
Ответ Создать тему
Опции темы

Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru