Submission #65294916


Source Code Expand

// https://atcoder.jp/contests/abc403/tasks/abc403_f
// 2025年04月27日 23時25分37秒
#include <bits/stdc++.h>
// #include <atcoder/all>
// using namespace atcoder;
// using mint = modint998244353;
// using mint = modint1000000007;
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define rep(i, n) for (long long int i = 0; i < (n); ++i)
#define rep2(i, k, n) for (long long int i = (k); i < (n); ++i)
using namespace std;
using ll = long long;
using vint = vector<int>;
using vll = vector<ll>;
using vvint = vector<vector<int>>;
using vvll = vector<vector<ll>>;

const ll INF = (ll)2e18 + 9;
// const int INF = (int)2e9 + 7;

template <typename T>
void chmin(T& a, T b) {
    a = min(a, b);
}
template <typename T>
void chmax(T& a, T b) {
    a = max(a, b);
}

template <typename T>
void print(vector<T> v) {
    int n = v.size();
    rep(i, n) {
        if (i == 0)
            cout << v[i];
        else
            cout << ' ' << v[i];
    }
    cout << endl;
}

void yesno(bool x) {
    cout << (x ? "Yes" : "No") << '\n';
}

void solve();

int main() {
    solve();
    return 0;
}

void solve() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;

    map<int, string> memo;
    map<int, char> memoc;
    auto dfs = [&](auto dfs, int n) -> string {
        if (n == 1)
            return "1";
        if (n == 11)
            return "11";
        if (n == 111)
            return "111";
        if (n == 1111)
            return "1111";
        if (memo.count(n))
            return memo[n];

        string ans = "";
        ll sz = INF;
        char c = '_';
        rep2(i, 2, n) {
            if (n % i == 0) {
                string l = dfs(dfs, i);
                string r = dfs(dfs, n / i);
                if (memoc[i] == '+') {
                    l = "(" + l + ")";
                }
                if (memoc[n / i] == '+') {
                    r = "(" + r + ")";
                }
                if ((ll)l.size() + (ll)r.size() + 1 < sz) {
                    ans = l + "*" + r;
                    memoc[n] = '*';
                    sz = ans.size();
                }
            }
        }
        rep2(i, 1, n) {
            string l = dfs(dfs, i);
            string r = dfs(dfs, n - i);
            ll tmpsz = (ll)l.size() + (ll)r.size() + 1;
            if (tmpsz < sz) {
                ans = l + "+" + r;
                sz = tmpsz;
                memoc[n] = '+';
            }
        }
        return memo[n] = ans;
    };

    cout << dfs(dfs, N) << endl;
}

Submission Info

Submission Time
Task F - Shortest One Formula
User goropikari
Language C++ 23 (gcc 12.2)
Score 500
Code Size 2674 Byte
Status AC
Exec Time 395 ms
Memory 4288 KiB

Compile Error

Main.cpp: In instantiation of ‘solve()::<lambda(auto:53, int)> [with auto:53 = solve()::<lambda(auto:53, int)>; std::string = std::__cxx11::basic_string<char>]’:
Main.cpp:108:16:   required from here
Main.cpp:77:14: warning: unused variable ‘c’ [-Wunused-variable]
   77 |         char c = '_';
      |              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 54
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt, 01_test_46.txt, 01_test_47.txt, 01_test_48.txt, 01_test_49.txt, 01_test_50.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3492 KiB
00_sample_01.txt AC 1 ms 3532 KiB
00_sample_02.txt AC 13 ms 3552 KiB
01_test_00.txt AC 1 ms 3536 KiB
01_test_01.txt AC 1 ms 3392 KiB
01_test_02.txt AC 395 ms 4148 KiB
01_test_03.txt AC 394 ms 4160 KiB
01_test_04.txt AC 393 ms 4088 KiB
01_test_05.txt AC 392 ms 4088 KiB
01_test_06.txt AC 392 ms 4124 KiB
01_test_07.txt AC 391 ms 4288 KiB
01_test_08.txt AC 391 ms 4160 KiB
01_test_09.txt AC 394 ms 4216 KiB
01_test_10.txt AC 391 ms 4216 KiB
01_test_11.txt AC 390 ms 4080 KiB
01_test_12.txt AC 389 ms 4100 KiB
01_test_13.txt AC 62 ms 3748 KiB
01_test_14.txt AC 126 ms 3920 KiB
01_test_15.txt AC 113 ms 3860 KiB
01_test_16.txt AC 29 ms 3684 KiB
01_test_17.txt AC 119 ms 3912 KiB
01_test_18.txt AC 40 ms 3708 KiB
01_test_19.txt AC 2 ms 3416 KiB
01_test_20.txt AC 45 ms 3724 KiB
01_test_21.txt AC 13 ms 3656 KiB
01_test_22.txt AC 101 ms 3796 KiB
01_test_23.txt AC 42 ms 3704 KiB
01_test_24.txt AC 5 ms 3492 KiB
01_test_25.txt AC 174 ms 3936 KiB
01_test_26.txt AC 203 ms 3968 KiB
01_test_27.txt AC 47 ms 3732 KiB
01_test_28.txt AC 221 ms 3944 KiB
01_test_29.txt AC 40 ms 3704 KiB
01_test_30.txt AC 269 ms 3972 KiB
01_test_31.txt AC 20 ms 3592 KiB
01_test_32.txt AC 174 ms 3876 KiB
01_test_33.txt AC 362 ms 4176 KiB
01_test_34.txt AC 367 ms 4084 KiB
01_test_35.txt AC 386 ms 4044 KiB
01_test_36.txt AC 357 ms 4184 KiB
01_test_37.txt AC 368 ms 4140 KiB
01_test_38.txt AC 383 ms 4148 KiB
01_test_39.txt AC 364 ms 4120 KiB
01_test_40.txt AC 363 ms 4120 KiB
01_test_41.txt AC 360 ms 4144 KiB
01_test_42.txt AC 378 ms 4128 KiB
01_test_43.txt AC 1 ms 3320 KiB
01_test_44.txt AC 1 ms 3532 KiB
01_test_45.txt AC 67 ms 3728 KiB
01_test_46.txt AC 90 ms 3716 KiB
01_test_47.txt AC 229 ms 3948 KiB
01_test_48.txt AC 270 ms 3984 KiB
01_test_49.txt AC 340 ms 3964 KiB
01_test_50.txt AC 384 ms 4000 KiB