Решение задачи "Разделение конфет" с Codeforces

Без пояснения   Просмотров: 10


У Деда Мороза есть n конфет и он хочет подарить их k детям. Он хочет разделить как можно больше конфет среди всех k детей. Санта не может разделять одну конфету на части, но он может не использовать некоторые конфеты вообще.

Пусть ребенок, который получил минимальное количество конфет, получил ровно a конфет, а ребенок, который получил максимальное количество конфет, получил b конфет. Тогда Дед Мороз будет доволен, если оба следующих условия выполняются одновременно:

b−a≤1 (это значит, что b=a или b=a+1);
количество детей, кто имеет a+1 конфету (заметьте, что a+1 не обязательно равно b) не превосходит ⌊k2⌋ (меньше либо равно ⌊k2⌋).
Запись ⌊k2⌋ означает k делённое на 2 и округлённое вниз до ближайшего целого числа. Например, если k=5, то ⌊k2⌋=⌊52⌋=2.

Ваша задача — найти максимальное количество конфет, которые Дед Мороз сможет дать детям таким образом, чтобы он был доволен.

Вам необходимо ответить на t независимых наборов входных данных.

Код

#include<bits/stdc++.h>
using namespace std;

int a,b,c;
int main(){
    cin >> a;
    while(a--){
        cin >> b >> c;
        cout << min(c * (b/c) + c/2, b) << endl;
    }
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться