题目链接: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 << " "; } int main() { int t; cin >> t; while (t--) solve(); }