結果

問題 No.370 道路の掃除
ユーザー vjudge1
提出日時 2025-03-16 23:15:21
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 809 bytes
コンパイル時間 1,772 ms
コンパイル使用メモリ 166,672 KB
実行使用メモリ 7,324 KB
最終ジャッジ日時 2025-03-16 23:15:24
合計ジャッジ時間 2,986 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 34
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N, M;
    cin >> N >> M;

    vector<int> positions(M);
    for (int i = 0; i < M; ++i) {
        cin >> positions[i];
    }

    // ?????
    sort(positions.begin(), positions.end());

    // ????????
    int min_distance = INT_MAX;

    // ?? N ??????
    for (int i = 0; i <= M - N; ++i) {
        // ???????????
        int start = positions[i];
        int end = positions[i + N - 1];

        // ??????? 0 ????????
        // ????? 0 ????????????????????
        int distance1 = abs(start) + (end - start);
        // ?????????????????????
        int distance2 = abs(end) + (end - start);

        // ??????
        min_distance = min(min_distance, min(distance1, distance2));
    }

    cout << min_distance << endl;

    return 0;
}
0