Submission #49746366
Source Code Expand
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;
int main() {
ll N, M;
cin >> N >> M;
vector<ll> X(M);
for (ll i = 0; i < M; i++) {
cin >> X[i];
X[i]--;
}
vector<ll> diffs(M - 1);
for (ll i = 0; i < M - 1; i++) {
diffs[i] = abs(X[i] - X[i + 1]);
}
// 最初は橋 N を封鎖した場合のコストを愚直に求める
ll ans = 0;
for (ll i = 0; i < M - 1; i++) {
ans += diffs[i];
}
vector<vector<ll>> idxs(N, vector<ll>(0));
for (ll i = 0; i < M; i++) {
idxs[X[i]].push_back(i);
}
ll INF = 100000000000007;
// すべての橋に対して,封鎖した際のコストを差分計算によって求めていく
ll now_ans = ans;
for (ll i = 0; i < N; i++) {
for (ll j = 0; j < idxs[i].size(); j++) {
ll val = idxs[i][j];
if (val > 0) {
ll prev = diffs[val - 1];
now_ans = (now_ans - prev + (N - prev));
diffs[val - 1] = N - prev;
}
if (val < M - 1) {
ll prev = diffs[val];
now_ans = (now_ans - prev + (N - prev));
diffs[val] = N - prev;
}
}
ans = min(ans, now_ans);
}
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Island Tour |
| User | AngrySadEight |
| Language | C++ 20 (gcc 12.2) |
| Score | 425 |
| Code Size | 1377 Byte |
| Status | AC |
| Exec Time | 48 ms |
| Memory | 17252 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:31:26: warning: comparison of integer expressions of different signedness: ‘ll’ {aka ‘long long int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
31 | for (ll j = 0; j < idxs[i].size(); j++) {
| ~~^~~~~~~~~~~~~~~~
Main.cpp:27:8: warning: unused variable ‘INF’ [-Wunused-variable]
27 | ll INF = 100000000000007;
| ^~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 425 / 425 | ||||
| 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_random_00.txt, 01_random_01.txt, 01_random_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, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 02_random2_05.txt, 02_random2_06.txt, 02_random2_07.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3488 KiB |
| 00_sample_01.txt | AC | 1 ms | 3424 KiB |
| 00_sample_02.txt | AC | 2 ms | 7092 KiB |
| 01_random_00.txt | AC | 6 ms | 8640 KiB |
| 01_random_01.txt | AC | 43 ms | 11504 KiB |
| 01_random_02.txt | AC | 48 ms | 15240 KiB |
| 01_random_03.txt | AC | 28 ms | 8124 KiB |
| 01_random_04.txt | AC | 36 ms | 13744 KiB |
| 01_random_05.txt | AC | 46 ms | 14408 KiB |
| 01_random_06.txt | AC | 46 ms | 15168 KiB |
| 01_random_07.txt | AC | 29 ms | 8668 KiB |
| 01_random_08.txt | AC | 45 ms | 15032 KiB |
| 01_random_09.txt | AC | 46 ms | 14464 KiB |
| 01_random_10.txt | AC | 47 ms | 15248 KiB |
| 01_random_11.txt | AC | 18 ms | 6856 KiB |
| 01_random_12.txt | AC | 35 ms | 13388 KiB |
| 01_random_13.txt | AC | 34 ms | 9204 KiB |
| 01_random_14.txt | AC | 48 ms | 15236 KiB |
| 01_random_15.txt | AC | 21 ms | 10716 KiB |
| 02_random2_00.txt | AC | 34 ms | 11764 KiB |
| 02_random2_01.txt | AC | 4 ms | 8268 KiB |
| 02_random2_02.txt | AC | 30 ms | 8964 KiB |
| 02_random2_03.txt | AC | 40 ms | 13408 KiB |
| 02_random2_04.txt | AC | 9 ms | 5100 KiB |
| 02_random2_05.txt | AC | 26 ms | 11252 KiB |
| 02_random2_06.txt | AC | 40 ms | 11612 KiB |
| 02_random2_07.txt | AC | 40 ms | 13416 KiB |
| 03_handmade_00.txt | AC | 38 ms | 12756 KiB |
| 03_handmade_01.txt | AC | 41 ms | 17252 KiB |
| 03_handmade_02.txt | AC | 1 ms | 3364 KiB |