Yukicoder071 そろばん

問題概要

N個の珠が一列に並んだそろばんがある。上と下にそろばんを分けるとき、適切な分け方をすると最大どれだけの数字を表現できるか。

$N\leqq10^6$

yukicoder071

解法

式変形をして$O(1)$か、
全部のパターンをシュミレーションすれば良い。

計算量:$O(N)$

ソース

    #include <bits/stdc++.h>
    using namespace std;
    
    using VS = vector<string>;    using LL = long long;
    #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
    
    int main() {
        cin.tie(0);
        ios_base::sync_with_stdio(false);
    
        int N;  cin >> N;
        LL ans = 0;
        FOR(i, 0, N) {// i:=上の数
            LL under = N - i;
            ans = max(ans, (i + 1)*(under + 1) - 1);
    
        }
        cout << ans << "\n";
    
        return 0;
    }
    
Share Comments
̃Gg[͂ĂȃubN}[Nɒlj
comments powered by Disqus