Submission #39057792
Source Code Expand
#pragma GCC optimize(3)
#include <bits/stdc++.h>
using i64 = long long;
constexpr i64 inf64 = 0x3f3f3f3f3f3f3f3f;
constexpr int N = 305;
constexpr int M = 305;
constexpr double dt = 0.9997;
int n, m;
int a[N], b[M];
int p[N + M];
i64 ans;
int s[N + M];
int t1[N], t2[M];
i64 calc () {
int k1 = 0, k2 = 0;
std::memset(s + 1, 0, n + m << 2);
for (int i = 1; i <= n; ++ i) {
s[p[i]] = 1;
}
for (int i = 1; i <= n + m; ++ i) {
if (s[i] == 0) {
t2[++ k2] = std::abs(n - 2 * s[i - 1]);
} else {
t1[++ k1] = std::abs(m - 2 * ((i - 1) - s[i - 1]));
}
s[i] += s[i - 1];
}
// std::sort(c1 + 1, c1 + n + 1);
// std::sort(c2 + 1, c2 + m + 1);
i64 res = 0LL;
for (int i = 1, j = n, p = 1; i <= j; ) {
if (t1[i] >= t1[j]) {
res += 1LL * a[p ++ ] * t1[i ++ ];
} else {
res += 1LL * a[p ++ ] * t1[j -- ];
}
}
for (int i = 1, j = m, p = 1; i <= j; ) {
if (t2[i] >= t2[j]) {
res += 1LL * b[p ++ ] * t2[i ++ ];
} else {
res += 1LL * b[p ++ ] * t2[j -- ];
}
}
ans = std::min(ans, res);
return res;
}
int main () {
auto Bg = clock();
auto Time = [&]() -> double {
return double(clock() - Bg) / CLOCKS_PER_SEC;
};
std::ios::sync_with_stdio(0);
std::cin.tie(nullptr);
srand(time(0) * ((unsigned long long)new char));
std::cin >> n >> m;
for (int i = 1; i <= n; ++ i) {
std::cin >> a[i];
}
for (int i = 1; i <= m; ++ i) {
std::cin >> b[i];
}
std::sort(a + 1, a + n + 1);
std::sort(b + 1, b + m + 1);
std::iota(p + 1, p + (n + m) + 1, 1);
std::shuffle(p + 1, p + (n + m) + 1, std::mt19937 (1206));
ans = inf64;
i64 cur = calc();
for (double t = 1e6; Time() < 1.9; t *= dt) {
int i = rand() % n + 1, j = rand() % m + n + 1;
std::swap(p[i], p[j]);
i64 nxt = calc();
if (nxt <= cur) {
cur = nxt;
} else {
const double prob = exp(-(nxt - cur) / t);
if (rand() < prob * 2147483647) {
cur = nxt;
} else {
std::swap(p[i], p[j]);
}
}
}
std::cout << ans << "\n";
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | Ex - Bow Meow Optimization |
| User | fhqTreap |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 2103 Byte |
| Status | AC |
| Exec Time | 1912 ms |
| Memory | 4168 KiB |
Compile Error
./Main.cpp: In function ‘i64 calc()’:
./Main.cpp:24:26: warning: suggest parentheses around ‘+’ inside ‘<<’ [-Wparentheses]
24 | std::memset(s + 1, 0, n + m << 2);
| ~~^~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| 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_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 02_large_05.txt, 02_large_06.txt, 02_large_07.txt, 02_large_08.txt, 02_large_09.txt, 02_large_10.txt, 02_large_11.txt, 02_large_12.txt, 02_large_13.txt, 02_large_14.txt, 02_large_15.txt, 02_large_16.txt, 02_large_17.txt, 02_large_18.txt, 02_large_19.txt, 02_large_20.txt, 02_large_21.txt, 02_large_22.txt, 02_large_23.txt, 02_large_24.txt, 02_large_25.txt, 02_large_26.txt, 02_large_27.txt, 02_large_28.txt, 02_large_29.txt, 02_large_30.txt, 02_large_31.txt, 02_large_32.txt, 02_large_33.txt, 02_large_34.txt, 02_large_35.txt, 02_large_36.txt, 02_large_37.txt, 02_large_38.txt, 02_large_39.txt, 02_large_40.txt, 02_large_41.txt, 02_large_42.txt, 02_large_43.txt, 02_large_44.txt, 02_large_45.txt, 02_large_46.txt, 02_large_47.txt, 02_large_48.txt, 02_large_49.txt, 02_large_50.txt, 02_large_51.txt, 02_large_52.txt, 02_large_53.txt, 02_large_54.txt, 02_large_55.txt, 02_large_56.txt, 02_large_57.txt, 02_large_58.txt, 02_large_59.txt, 02_large_60.txt, 02_large_61.txt, 02_large_62.txt, 02_large_63.txt, 02_large_64.txt, 02_large_65.txt, 02_large_66.txt, 02_large_67.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt, 03_handmade_06.txt, 03_handmade_07.txt, 03_handmade_08.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1912 ms | 4160 KiB |
| 00_sample_01.txt | AC | 1904 ms | 4064 KiB |
| 00_sample_02.txt | AC | 1904 ms | 4080 KiB |
| 01_small_00.txt | AC | 1908 ms | 3856 KiB |
| 01_small_01.txt | AC | 1912 ms | 3928 KiB |
| 01_small_02.txt | AC | 1908 ms | 3836 KiB |
| 01_small_03.txt | AC | 1908 ms | 3864 KiB |
| 01_small_04.txt | AC | 1904 ms | 3832 KiB |
| 01_small_05.txt | AC | 1907 ms | 3852 KiB |
| 01_small_06.txt | AC | 1912 ms | 3880 KiB |
| 01_small_07.txt | AC | 1904 ms | 3952 KiB |
| 01_small_08.txt | AC | 1908 ms | 3896 KiB |
| 01_small_09.txt | AC | 1912 ms | 3804 KiB |
| 02_large_00.txt | AC | 1908 ms | 3984 KiB |
| 02_large_01.txt | AC | 1908 ms | 3776 KiB |
| 02_large_02.txt | AC | 1904 ms | 3860 KiB |
| 02_large_03.txt | AC | 1904 ms | 3868 KiB |
| 02_large_04.txt | AC | 1904 ms | 3816 KiB |
| 02_large_05.txt | AC | 1908 ms | 3816 KiB |
| 02_large_06.txt | AC | 1904 ms | 4004 KiB |
| 02_large_07.txt | AC | 1904 ms | 3844 KiB |
| 02_large_08.txt | AC | 1908 ms | 3836 KiB |
| 02_large_09.txt | AC | 1912 ms | 3908 KiB |
| 02_large_10.txt | AC | 1904 ms | 3996 KiB |
| 02_large_11.txt | AC | 1908 ms | 3928 KiB |
| 02_large_12.txt | AC | 1904 ms | 3992 KiB |
| 02_large_13.txt | AC | 1907 ms | 3832 KiB |
| 02_large_14.txt | AC | 1908 ms | 3848 KiB |
| 02_large_15.txt | AC | 1912 ms | 3952 KiB |
| 02_large_16.txt | AC | 1904 ms | 3776 KiB |
| 02_large_17.txt | AC | 1904 ms | 3996 KiB |
| 02_large_18.txt | AC | 1904 ms | 3836 KiB |
| 02_large_19.txt | AC | 1908 ms | 3856 KiB |
| 02_large_20.txt | AC | 1904 ms | 3868 KiB |
| 02_large_21.txt | AC | 1904 ms | 3844 KiB |
| 02_large_22.txt | AC | 1904 ms | 3884 KiB |
| 02_large_23.txt | AC | 1908 ms | 3832 KiB |
| 02_large_24.txt | AC | 1908 ms | 3888 KiB |
| 02_large_25.txt | AC | 1912 ms | 3744 KiB |
| 02_large_26.txt | AC | 1907 ms | 3848 KiB |
| 02_large_27.txt | AC | 1908 ms | 3952 KiB |
| 02_large_28.txt | AC | 1908 ms | 4008 KiB |
| 02_large_29.txt | AC | 1908 ms | 3960 KiB |
| 02_large_30.txt | AC | 1904 ms | 3740 KiB |
| 02_large_31.txt | AC | 1912 ms | 3612 KiB |
| 02_large_32.txt | AC | 1904 ms | 4008 KiB |
| 02_large_33.txt | AC | 1907 ms | 3868 KiB |
| 02_large_34.txt | AC | 1911 ms | 3960 KiB |
| 02_large_35.txt | AC | 1907 ms | 3964 KiB |
| 02_large_36.txt | AC | 1912 ms | 3680 KiB |
| 02_large_37.txt | AC | 1908 ms | 3876 KiB |
| 02_large_38.txt | AC | 1903 ms | 3644 KiB |
| 02_large_39.txt | AC | 1907 ms | 4136 KiB |
| 02_large_40.txt | AC | 1907 ms | 4056 KiB |
| 02_large_41.txt | AC | 1904 ms | 3956 KiB |
| 02_large_42.txt | AC | 1908 ms | 4116 KiB |
| 02_large_43.txt | AC | 1911 ms | 3880 KiB |
| 02_large_44.txt | AC | 1904 ms | 3856 KiB |
| 02_large_45.txt | AC | 1904 ms | 4028 KiB |
| 02_large_46.txt | AC | 1912 ms | 3952 KiB |
| 02_large_47.txt | AC | 1908 ms | 3992 KiB |
| 02_large_48.txt | AC | 1908 ms | 3872 KiB |
| 02_large_49.txt | AC | 1912 ms | 3844 KiB |
| 02_large_50.txt | AC | 1908 ms | 3868 KiB |
| 02_large_51.txt | AC | 1907 ms | 3704 KiB |
| 02_large_52.txt | AC | 1912 ms | 3704 KiB |
| 02_large_53.txt | AC | 1903 ms | 3744 KiB |
| 02_large_54.txt | AC | 1911 ms | 3908 KiB |
| 02_large_55.txt | AC | 1907 ms | 4024 KiB |
| 02_large_56.txt | AC | 1904 ms | 3832 KiB |
| 02_large_57.txt | AC | 1904 ms | 3948 KiB |
| 02_large_58.txt | AC | 1904 ms | 3960 KiB |
| 02_large_59.txt | AC | 1904 ms | 3960 KiB |
| 02_large_60.txt | AC | 1904 ms | 4008 KiB |
| 02_large_61.txt | AC | 1911 ms | 3840 KiB |
| 02_large_62.txt | AC | 1907 ms | 4016 KiB |
| 02_large_63.txt | AC | 1904 ms | 3992 KiB |
| 02_large_64.txt | AC | 1904 ms | 3856 KiB |
| 02_large_65.txt | AC | 1907 ms | 3992 KiB |
| 02_large_66.txt | AC | 1904 ms | 3952 KiB |
| 02_large_67.txt | AC | 1907 ms | 3880 KiB |
| 03_handmade_00.txt | AC | 1908 ms | 3548 KiB |
| 03_handmade_01.txt | AC | 1908 ms | 4000 KiB |
| 03_handmade_02.txt | AC | 1907 ms | 4120 KiB |
| 03_handmade_03.txt | AC | 1908 ms | 4156 KiB |
| 03_handmade_04.txt | AC | 1904 ms | 4116 KiB |
| 03_handmade_05.txt | AC | 1908 ms | 4112 KiB |
| 03_handmade_06.txt | AC | 1912 ms | 4120 KiB |
| 03_handmade_07.txt | AC | 1912 ms | 4132 KiB |
| 03_handmade_08.txt | AC | 1912 ms | 4168 KiB |