Submission #21284431


Source Code Expand

N, K = map(int, input().split())
X, Y = map(int, input().split())
C = [0] * 101010
t = 0
for a in map(int, input().split()):
    C[a] += 1
    t += a

ans = 10 ** 100
cx = 0
for m in range(10 ** 5 + 5, K, -1):
    while C[m]:
        
        # 雑な高速化
        if m - 1 > (t + K - 1) // K and C[m] >= 3:
            cy = max(m if C[m] else m - 1, (t + K - 1) // K)
            ans = min(ans, cx * X + cy * Y)
            d = C[m] - 2
            cx += d
            C[m] -= d
            C[m-K] += d
            t -= K * d
        
        dd = (t + K - 1) // K - (m - 1)
        if dd >= 5 and C[m] >= 3:
            cy = max(m if C[m] else m - 1, (t + K - 1) // K)
            ans = min(ans, cx * X + cy * Y)
            d = min(dd - 3, C[m] - 2)
            cx += d
            C[m] -= d
            C[m-K] += d
            t -= K * d
            
        
        cy = max(m if C[m] else m - 1, (t + K - 1) // K)
        ans = min(ans, cx * X + cy * Y)
        cx += 1
        C[m] -= 1
        C[m-K] += 1
        t -= K
        cy = max(m if C[m] else m - 1, (t + K - 1) // K)
        ans = min(ans, cx * X + cy * Y)
for m in range(K, -1, -1):
    cy = max(m if C[m] else m - 1, (t + K - 1) // K)
    ans = min(ans, cx * X + cy * Y)
    while C[m]:
        cx += 1
        C[m] -= 1
        t -= m
        cy = max(m if C[m] else m - 1, (t + K - 1) // K)
        ans = min(ans, cx * X + cy * Y)
print(ans)

Submission Info

Submission Time
Task F - Save Your MP
User Kiri8128
Language PyPy3 (7.3.0)
Score 100
Code Size 1472 Byte
Status AC
Exec Time 125 ms
Memory 77384 KiB

Judge Result

Set Name sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 56
Set Name Test Cases
sample 00_sample_00, 00_sample_01, 00_sample_02
All 00_sample_00, 00_sample_01, 00_sample_02, 00_small_00, 00_small_01, 00_small_02, 00_small_03, 00_small_04, 00_small_05, 00_small_06, 00_small_07, 00_small_08, 00_small_09, 01_random_00, 01_random_01, 01_random_02, 01_random_03, 01_random_04, 01_random_05, 01_random_06, 01_random_07, 01_random_08, 01_random_09, 02_large_00, 02_large_01, 02_large_02, 02_large_03, 02_large_04, 02_large_05, 02_large_06, 02_large_07, 02_large_08, 02_large_09, 03_edge_00, 03_edge_01, 03_edge_02, 03_edge_03, 03_edge_04, 03_edge_05, 03_edge_06, 03_edge_07, 03_edge_08, 03_edge_09, 03_edge_10, 03_edge_11, 03_edge_12, 03_edge_13, 03_edge_14, 03_edge_15, 03_edge_16, 03_edge_17, 03_edge_18, 03_edge_19, 04_corner_00, 04_corner_01, 04_corner_02
Case Name Status Exec Time Memory
00_sample_00 AC 69 ms 63108 KiB
00_sample_01 AC 55 ms 63236 KiB
00_sample_02 AC 54 ms 63252 KiB
00_small_00 AC 57 ms 63464 KiB
00_small_01 AC 54 ms 63312 KiB
00_small_02 AC 58 ms 63568 KiB
00_small_03 AC 56 ms 63420 KiB
00_small_04 AC 58 ms 63376 KiB
00_small_05 AC 57 ms 63300 KiB
00_small_06 AC 56 ms 63404 KiB
00_small_07 AC 57 ms 63324 KiB
00_small_08 AC 57 ms 63512 KiB
00_small_09 AC 55 ms 63448 KiB
01_random_00 AC 98 ms 77108 KiB
01_random_01 AC 93 ms 76128 KiB
01_random_02 AC 93 ms 77384 KiB
01_random_03 AC 102 ms 77148 KiB
01_random_04 AC 99 ms 76940 KiB
01_random_05 AC 96 ms 76944 KiB
01_random_06 AC 99 ms 77068 KiB
01_random_07 AC 100 ms 76392 KiB
01_random_08 AC 99 ms 76940 KiB
01_random_09 AC 102 ms 77316 KiB
02_large_00 AC 100 ms 76636 KiB
02_large_01 AC 104 ms 76416 KiB
02_large_02 AC 86 ms 76516 KiB
02_large_03 AC 92 ms 76476 KiB
02_large_04 AC 95 ms 76864 KiB
02_large_05 AC 114 ms 76848 KiB
02_large_06 AC 91 ms 76616 KiB
02_large_07 AC 109 ms 75612 KiB
02_large_08 AC 110 ms 76700 KiB
02_large_09 AC 91 ms 76520 KiB
03_edge_00 AC 56 ms 63484 KiB
03_edge_01 AC 55 ms 63464 KiB
03_edge_02 AC 56 ms 63444 KiB
03_edge_03 AC 53 ms 63324 KiB
03_edge_04 AC 105 ms 68680 KiB
03_edge_05 AC 116 ms 69228 KiB
03_edge_06 AC 98 ms 77192 KiB
03_edge_07 AC 100 ms 77256 KiB
03_edge_08 AC 94 ms 76332 KiB
03_edge_09 AC 97 ms 77180 KiB
03_edge_10 AC 97 ms 76924 KiB
03_edge_11 AC 106 ms 77332 KiB
03_edge_12 AC 107 ms 77140 KiB
03_edge_13 AC 97 ms 76140 KiB
03_edge_14 AC 108 ms 77232 KiB
03_edge_15 AC 109 ms 76192 KiB
03_edge_16 AC 121 ms 77048 KiB
03_edge_17 AC 81 ms 74844 KiB
03_edge_18 AC 83 ms 76116 KiB
03_edge_19 AC 83 ms 75844 KiB
04_corner_00 AC 89 ms 68528 KiB
04_corner_01 AC 103 ms 72392 KiB
04_corner_02 AC 125 ms 77128 KiB