Educational Codeforces Round 88 (Rated for Div. 2) A. Berland Poker(数学)

题目链接:https://codeforces.com/contest/1359/problem/A

题意

$n$ 张牌可以刚好被平分给 $k$ 个人,其中有 $m$ 张 joker,当一个人手中的 joker 牌最多时获得胜利,他的分数为比其他有最多 joker 牌的人多出 joker 牌的张数。

题解

先给第一个人分配尽可能多的 joker 牌,其余的 joker 牌对其余人数取上整是平均分的话一个人最多有多少张,取下整是平均分的话一个人最少有多少张,本题取上整。

代码

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

void solve() {
    int n, m, k; cin >> n >> m >> k;
    int a = min(m, n / k);
    int b = (m - a + k - 2) / (k - 1);
    cout << a - b << "\n";
}

int main() {
    int t; cin >> t;
    while (t--) solve();
}

 

posted @ 2020-05-29 18:46  Kanoon  阅读(267)  评论(0编辑  收藏  举报