Submission #44764533
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int main() {
int N; cin >> N;
int X[N], Y[N];
for (int n = 0; n < N; ++n) cin >> X[n] >> Y[n];
auto distance = [&](int a, int b) {
double x = X[a] - X[b];
double y = Y[a] - Y[b];
return sqrt(x*x + y*y);
};
double a[10000];
double b[10000];
unordered_map<int, unordered_map<int, double>> dp;
dp[0][0] = 0;
for (int n = 1; n < N - 1; ++n) {
unordered_map<int, unordered_map<int, double>> next;
for (auto &[skip, m] : dp) for (auto &[last, dist] : m) {
if (skip > 60) continue;
next[skip][n] = min(dist + distance(last, n), next[skip].contains(n) ? next[skip][n] : 1000000000.0);
next[skip + 1][last] = min(dist, next[skip + 1].contains(last) ? next[skip + 1][last] : 1000000000.0);
}
dp = next;
}
unordered_map<int, double> p;
for (auto &[skip, m] : dp) for (auto &[last, dist] : m) {
p[skip] = min(dist + distance(last, N-1), p.contains(skip) ? p[skip] : 1000000000.0);
}
double ans = p[0];
for (auto &[skip, v] : p) {
if (skip == 0) continue;
ans = min(ans, v + pow(2, skip - 1));
}
cout << std::setprecision(20) << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Shortcuts |
| User | Steinberg |
| Language | C++ 20 (gcc 12.2) |
| Score | 500 |
| Code Size | 1216 Byte |
| Status | AC |
| Exec Time | 1929 ms |
| Memory | 4356 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:14:10: warning: unused variable ‘a’ [-Wunused-variable]
14 | double a[10000];
| ^
Main.cpp:15:10: warning: unused variable ‘b’ [-Wunused-variable]
15 | double b[10000];
| ^
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | killer_01.txt, killer_02.txt, sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| killer_01.txt | AC | 270 ms | 4268 KiB |
| killer_02.txt | AC | 1197 ms | 4300 KiB |
| sample_01.txt | AC | 1 ms | 3944 KiB |
| sample_02.txt | AC | 1 ms | 3992 KiB |
| sample_03.txt | AC | 1 ms | 4040 KiB |
| test_01.txt | AC | 1 ms | 3768 KiB |
| test_02.txt | AC | 2 ms | 3852 KiB |
| test_03.txt | AC | 345 ms | 4200 KiB |
| test_04.txt | AC | 60 ms | 4236 KiB |
| test_05.txt | AC | 9 ms | 4120 KiB |
| test_06.txt | AC | 1730 ms | 4324 KiB |
| test_07.txt | AC | 1785 ms | 4312 KiB |
| test_08.txt | AC | 1326 ms | 4160 KiB |
| test_09.txt | AC | 977 ms | 4296 KiB |
| test_10.txt | AC | 35 ms | 4228 KiB |
| test_11.txt | AC | 1792 ms | 4216 KiB |
| test_12.txt | AC | 1788 ms | 4260 KiB |
| test_13.txt | AC | 1806 ms | 4232 KiB |
| test_14.txt | AC | 1929 ms | 4312 KiB |
| test_15.txt | AC | 1803 ms | 4236 KiB |
| test_16.txt | AC | 1800 ms | 4200 KiB |
| test_17.txt | AC | 1795 ms | 4312 KiB |
| test_18.txt | AC | 1795 ms | 4316 KiB |
| test_19.txt | AC | 78 ms | 4128 KiB |
| test_20.txt | AC | 826 ms | 4268 KiB |
| test_21.txt | AC | 706 ms | 4260 KiB |
| test_22.txt | AC | 381 ms | 4260 KiB |
| test_23.txt | AC | 642 ms | 4296 KiB |
| test_24.txt | AC | 715 ms | 4196 KiB |
| test_25.txt | AC | 1342 ms | 4308 KiB |
| test_26.txt | AC | 491 ms | 4164 KiB |
| test_27.txt | AC | 980 ms | 4292 KiB |
| test_28.txt | AC | 1755 ms | 4328 KiB |
| test_29.txt | AC | 1340 ms | 4156 KiB |
| test_30.txt | AC | 1678 ms | 4200 KiB |
| test_31.txt | AC | 873 ms | 4228 KiB |
| test_32.txt | AC | 932 ms | 4228 KiB |
| test_33.txt | AC | 113 ms | 4252 KiB |
| test_34.txt | AC | 258 ms | 4244 KiB |
| test_35.txt | AC | 1224 ms | 4324 KiB |
| test_36.txt | AC | 1110 ms | 4244 KiB |
| test_37.txt | AC | 781 ms | 4164 KiB |
| test_38.txt | AC | 646 ms | 4160 KiB |
| test_39.txt | AC | 1826 ms | 4312 KiB |
| test_40.txt | AC | 1805 ms | 4348 KiB |
| test_41.txt | AC | 1800 ms | 4316 KiB |
| test_42.txt | AC | 1792 ms | 4312 KiB |
| test_43.txt | AC | 1799 ms | 4328 KiB |
| test_44.txt | AC | 1810 ms | 4324 KiB |
| test_45.txt | AC | 1798 ms | 4336 KiB |
| test_46.txt | AC | 1792 ms | 4356 KiB |
| test_47.txt | AC | 1795 ms | 4332 KiB |
| test_48.txt | AC | 1791 ms | 4324 KiB |
| test_49.txt | AC | 1793 ms | 4312 KiB |
| test_50.txt | AC | 1792 ms | 4324 KiB |
| test_51.txt | AC | 1812 ms | 4352 KiB |
| test_52.txt | AC | 1797 ms | 4204 KiB |
| test_53.txt | AC | 1790 ms | 4264 KiB |
| test_54.txt | AC | 1782 ms | 4236 KiB |
| test_55.txt | AC | 1799 ms | 4308 KiB |
| test_56.txt | AC | 1781 ms | 4268 KiB |
| test_57.txt | AC | 1790 ms | 4304 KiB |
| test_58.txt | AC | 1792 ms | 4236 KiB |
| test_59.txt | AC | 1791 ms | 4272 KiB |
| test_60.txt | AC | 1790 ms | 4220 KiB |
| test_61.txt | AC | 1796 ms | 4276 KiB |
| test_62.txt | AC | 1789 ms | 4248 KiB |
| test_63.txt | AC | 1804 ms | 4308 KiB |
| test_64.txt | AC | 1791 ms | 4248 KiB |