ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1820. Уральские бифштексы

Помогите понять мою ошибку
Послано Romanchillihotpepper 8 окт 2021 11:40
Почему так не проходит(ошибка на 13):
#include <iostream>
int main() {
    int n,k;
    std::cin>>n>>k;
    if(n<=k) std::cout<<2;
    else std::cout<<n*2/k+n*2%k;

return 0;
}

А так проходит:
    #include <iostream>
int main() {
    int n,k;
    std::cin>>n>>k;
    if(n<=k) std::cout<<2;
    else{
        if(n*2 % k == 0) std::cout<<n*2/k;
        else std::cout<<n*2/k+1;
    }
return 0;
}
Ну или тернар(тоже не проходит - ошибка на 13):
#include <iostream>
int main() {
    int n,k;
    std::cin>>n>>k;
    (n<=k)?std::cout<<2:std::cout<<n*2/k+n*2 % k;

return 0;
}
Может я чего не понимаю, может всё-таки где-то приоритет потерял, но ведь идентично же.

Edited by author 08.10.2021 11:51
Теперь понял, %k может вернуть и больше, чем 1

Edited by author 08.10.2021 12:00

Edited by author 08.10.2021 12:02
C++ ответ:
#include <iostream>
int main() {
    int n,k;
    std::cin>>n>>k;
    (n<=k)?std::cout<<2:(n*2%k==0)?std::cout<<n*2/k:std::cout<<n*2/k+1;

return 0;
}

Edited by author 08.10.2021 12:03