top1编程
← 返回题目
题解

石头剪刀布

1 条题解

  • 0
    @ 2026-7-29 20:24:05
    /*
    	核心思路:想得到更多的对局,就要不浪费分数,
    			每一个完整对局都当做对手得0分来看待,
    			举例子:n = 2, m = 4, k = 2;
    			如果每一局n同学得一分,m同学得2分,总对局数是2
    			如果都把对手当成0分来对待
    			第一局n同学得2分,m同学得0分
    			后面两局n同学得0分,m同学得2分,总对局数是3
    			不浪费分数。
    */
    
    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
    	long long n, m, k;
    	cin >> n >> m >> k;
    	if (k == 1) { // 30分,k等于1代表得到一分就是完整的一局
    		cout << n + m;
    	} else if (n == 1 && m < k) {
    		cout << -1;
    	} else if (n == 1 && m >= k) {
    		cout << m / k; //60分,在n==1,k>=2时,n的分数不能构成完整对局,靠m
    	} else if (n < k && m < k){
    		cout << -1;
    	} else {
    		cout << n / k + m / k; //100分
    	}
    	return 0;
    }
    
    • 1