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
    标签
    (無)
    遞交數
    329
    已通過
    40
    上傳者