Table Tennis Game 2

Table Tennis Game 2

两人进行几局乒乓球,每局先得到 k 分的获胜,给出两人几局下来总得分a,b,求最多打了几局,不可能的组合输出-1。

最多局数就是 a 有几个 k 和 b 有几个 k;
可能的情况比较多,\(a,b >= k\)肯定合法, \(a,b < k\) 肯定不合法;
考虑的主要是一大一小,并且 $min(a,b) < k $ 和 \(max(a,b)\) 是不是 k 的倍数的情况,$ max(a,b)$比 k 小和 \(min(a,b)\)比 k 大不用考虑;
如果 \(max(a,b)\)不是 k 的倍数,也就是说 \(min(a,b)\)肯定赢过一局,至少得过 k 分;
例如 \(k=2, a=1, b=3\) 两场可能的比赛状况\([a=1,b=2] [a=0,b=1]\) 但是第二局没有结束;

int main(int argc, const char * argv[]) {
    int k,a,b;
    cin >>k >>a >>b;
    if (min(a,b) < k && max(a,b)%k)
        cout <<-1<<endl;
    else
        cout <<(a/k + b/k)<<endl;
    
    return 0;
}
posted @ 2020-04-16 08:59  0x8023  阅读(82)  评论(0编辑  收藏  举报