2 条题解

  • 1
    @ 2025-11-14 16:42:24
    #include<stdio.h>
    #define int long long
    signed main() {
    	int t;
    	scanf("%lld", &t);
    	while (t--) {
    		int n, k, m;
    		scanf("%lld%lld%lld", &n, &k, &m);
    		int q;
    		q = n / k;
    		int count = 0;
    		if(m==n){
    			printf("%lld\\n",n);   //特例m==n
    		}
    		else if (m - (n - q) >= 0) {
    			count = n - q;   //非k倍数,全部都要改
    			count += 1;      //把K先算进去
    			m = m - (n - q); //剩余可改数
    			q = q - m - 1;   //把剩下的m全部给q(k的倍数)改,k提前提出来,所以要减去1
    			count = count + m + q / 2;  //剩余几个k的倍数的两两结合
    			printf("%lld\\n", count);
    		}
    		else if (m - (n - q) < 0) {
    			count = m + (q + 1) / 2;
    			printf("%lld\\n", count);
    		}
    	}
    	return 0;
    }
    

    你以为ta在拖妥协,其实ta在默默离开

    信息

    ID
    1192
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    115
    已通过
    23
    上传者