Codeforces Round 558

    xiaoxiao2025-05-25  11

    A.

    n个猫围一圈,去掉m个,最多分成多少部分。

    当n足够大n>=m*2,答案就是m.

    当n<=m,不够分,答案为0

    在两者之间的时候,将m分成两部分, 

    n/2一部分, 若m = n/2,则 答案为m, 现在大于n/2, 需要多拿走 m - n/2个,也就是n/2 - (m-n/2)

    //A #include <bits/stdc++.h> using namespace std; int main() { int n,m; scanf("%d %d",&n,&m); if(n>=m*2){ if(m==0)m=1; printf("%d\n",m); }else if(n<=m){ printf("0\n"); }else { int ans = n/2-(m-n/2); if(n%2==1)ans+=1; printf("%d\n",ans); } return 0 ; }

     

    最新回复(0)