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
AC × 3
AC × 30
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