充分な長さを最初に作って、それを切断して作る。
- class BoardSplitting {
- public:
- int minimumCuts(int dL, int dC, int aL)
- {
- vector<int> v;
- v.push_back(0);
- while (v.back() <= dL * dC) {
- v.push_back(v.back() + aL);
- }
- int ret = 0;
- for (int i = 0; i < (int)dC; ++i) {
- if (binary_search(v.begin(), v.end(), (i + 1) * dL)) ;
- else ++ret;
- }
- return ret;
- }
- };