ちょっとした算数の問題!
問題概要
サイコロを転がしていく。サイコロの上の目の値を足していく。
その総和が 以上となるまでの最小回数を求めよ。
制約
考えたこと
6, 5, 6, 5, ... と繰り返していくのが最適である。それを求めるために、「2 回で 11」を限界まで繰り返したあとで、余ったところの帳尻を合わせる方針をとろう。
まず、res = X / 11 * 2 回移動して、r = X % 11 だけ余る。
のとき:
resを 1 増やすのとき:
resを 2 増やす
とすればよい。
コード
#include <bits/stdc++.h> using namespace std; int main() { long long x; cin >> x; long long res = (x / 11) * 2; long long r = x % 11; if (r > 0) res++; if (r > 6) res++; cout << res << endl; }