#36753: 邏輯題


samlin961112@gmail.com (林哲甫)

學校 : 新北市私立南山高級中學
編號 : 220506
來源 : [219.70.213.92]
最後登入時間 :
2024-04-28 22:43:43
d502. 第三題:產品包裝 -- 98學年度高雄市資訊學科能力競賽 | From: [219.70.213.92] | 發表日期 : 2023-08-06 15:23

令邊長1,2,3,4數量分別為a,b,c,d

邊長為4的會立刻裝滿,所以先加d

邊長為3裝一個後只能裝邊長為一的,總和加上c

同時,能裝下37*c個邊長一,a-37*c

邊長2一次能裝8個,總和加8*b

剩下放邊長1,a-8*(b%8)

最後放1,加a/64

C++ code

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int a, b, c, d;
  while (cin >> a >> b >> c >> d) {
    int sum = 0;
    sum += d;
    sum += c;
    a -= 37 * c;
    sum += ceil(b / 8.0);
    a -= 8 * (b % 8);
    if (a > 0) {
      sum += ceil(a / 64.0);
    }
    cout << sum<<'\n';
  }
}

 
ZeroJudge Forum