公式

A - リボンカット / Ribbon Cut 解説 by physics0523


初心者の方へ


\(N\) を受け取った後、以下の処理を for 文等を用いて \(N\) 回繰り返せばよいです。

  • \(L,T\) を受け取る。
  • まず、 \(L/T\) の商と同じ数だけパーツが得られる。
  • その後、 \(L\)\(T\) で割った余りが \(1\) 以上かつ \(\lfloor T/2 \rfloor\) 以上であるなら追加で \(1\) つパーツが得られる。
    • この判定は ( \(L\)\(T\) で割った余り ) \(\ge \max(1,\lfloor T/2 \rfloor)\) かどうかで判定できます。
  • 計算したパーツの個数を出力する。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;
using ll=long long;

int main(){
  ll N;
  cin >> N;
  while(N--){
    ll L,T;
    cin >> L >> T;
    ll res=(L/T);
    if((L%T)>=max(1ll,T/2)){res++;}
    cout << res << "\n";
  }
  return 0;
}

投稿日時:
最終更新: