Submission #47506592


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

const int N = 23;

ll f[1 << N], s[N][N][N], a[N], b[N];

int n; ll c;

ll dp(int mask) {
    if (f[mask] != -1) {
        return f[mask];
    }
    int cnt = __builtin_popcount(mask);
    int x = 1;
    ll res = 1e18;
    // cout << bs << endl;
    for (int i = 1; i <= cnt; ++i) {
        for (int j = 0; j+i <= n; ++j) {
            if ((mask & (x << j)) == (x << j)) {
                res = min(res, dp(mask ^ (x << j)) + s[i][cnt-i][j] + c);
            }
        }
        x = x * 2 + 1;
    }
    // cout << bs << ' ' << res << endl;
    return f[mask] = res;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> c;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }
    for (int i = 0; i < n; ++i) {
        cin >> b[i];
    }
    for (int d = 1; d <= n; ++d) {
        for (int i = 0; i+d <= n; ++i) {
            for (int j = 0; j+d <= n; ++j) {
                for (int k = 0; k < d; ++k) {
                    s[d][i][j] += abs(a[i+k] - b[j+k]);
                }
            }
        }
    }
    for (int i = 0; i < (1 << n); ++i) {
        f[i] = -1;
    }
    f[0] = 0;
    cout << dp((1 << n) - 1) - c << endl;
}

Submission Info

Submission Time
Task G - Cut and Reorder
User pkqs90
Language C++ 20 (gcc 12.2)
Score 575
Code Size 1292 Byte
Status AC
Exec Time 1858 ms
Memory 36488 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 575 / 575
Status
AC × 3
AC × 43
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_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 2 ms 3444 KiB
00_sample_01.txt AC 1 ms 3596 KiB
00_sample_02.txt AC 1818 ms 36288 KiB
01_random_03.txt AC 1827 ms 36360 KiB
01_random_04.txt AC 1743 ms 36284 KiB
01_random_05.txt AC 1684 ms 36352 KiB
01_random_06.txt AC 1771 ms 36264 KiB
01_random_07.txt AC 1830 ms 36356 KiB
01_random_08.txt AC 1858 ms 36268 KiB
01_random_09.txt AC 1741 ms 36488 KiB
01_random_10.txt AC 1 ms 3384 KiB
01_random_11.txt AC 1 ms 3640 KiB
01_random_12.txt AC 1 ms 3648 KiB
01_random_13.txt AC 11 ms 4016 KiB
01_random_14.txt AC 1 ms 3504 KiB
01_random_15.txt AC 1701 ms 36292 KiB
01_random_16.txt AC 1803 ms 36488 KiB
01_random_17.txt AC 1817 ms 36288 KiB
01_random_18.txt AC 1736 ms 36300 KiB
01_random_19.txt AC 1711 ms 36356 KiB
01_random_20.txt AC 1729 ms 36360 KiB
01_random_21.txt AC 1733 ms 36356 KiB
01_random_22.txt AC 1 ms 3500 KiB
01_random_23.txt AC 1 ms 3392 KiB
01_random_24.txt AC 2 ms 3584 KiB
01_random_25.txt AC 321 ms 11748 KiB
01_random_26.txt AC 1 ms 3464 KiB
01_random_27.txt AC 1840 ms 36260 KiB
01_random_28.txt AC 1845 ms 36428 KiB
01_random_29.txt AC 1762 ms 36488 KiB
01_random_30.txt AC 1715 ms 36344 KiB
01_random_31.txt AC 1812 ms 36344 KiB
01_random_32.txt AC 1846 ms 36260 KiB
01_random_33.txt AC 1 ms 3412 KiB
01_random_34.txt AC 1 ms 3472 KiB
01_random_35.txt AC 1 ms 3500 KiB
01_random_36.txt AC 1 ms 3512 KiB
01_random_37.txt AC 1 ms 3380 KiB
01_random_38.txt AC 1 ms 3576 KiB
01_random_39.txt AC 1 ms 3432 KiB
01_random_40.txt AC 1 ms 3508 KiB
01_random_41.txt AC 1848 ms 36292 KiB
01_random_42.txt AC 1723 ms 36360 KiB