2 条题解

  • 0
    @ 2025-10-29 20:17:29

    #include <stdio.h> int main(){ int k,n,m,x; scanf("%d",&x); while(x--){ scanf("%d %d %d",&k,&n,&m); int sum=0; if(k%20){ sum=(n+2*m)/k; printf("%d\n",sum); } else if(k1){ sum=m+n; printf("%d\n",sum); } else { sum=m/(k/2)<n?m/(k/2):n;//将2和1配组 ,完整的几个2和1成一组,取完整组数,即要最小值,无论2多或少或1 或多或少,都不是完整的一个1加几个2 n-=sum;//一次用一个1 m-=(k/2sum);//sum次用了几个大水水晶球 if(m0&&n0){ printf("%d\n",sum); } else if(m0){ sum+=n/k; }else if(n0){ sum+=m/((k+1)/2);//k+1是因为k为奇数,加1变为偶数,除以二得到需要大水晶球的个数,然后m/(k+1)/2,为剩余的大水晶球能充能几次 }else { sum+=((n+2m)/k); } printf("%d\n",sum); } } return 0; }

    信息

    ID
    1156
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    305
    已通过
    36
    上传者