結果

問題 No.5025 Forest Fire
コンテスト
ユーザー 👑 kencho
提出日時 2026-10-24 16:05:15
言語 C++17
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 1 ms / 2,000 ms
+ 935µs
コード長 1,004 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,524 ms
コンパイル使用メモリ 227,556 KB
実行使用メモリ 9,924 KB
スコア 68,238,483
最終ジャッジ日時 2026-10-24 16:06:48
合計ジャッジ時間 58,888 ms
ジャッジサーバーID
(参考情報)
judge4_0 / <nil>
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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

struct Cell {
    int d, i, j;
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, K;
    cin >> N >> K;

    vector<Cell> cells;

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            char c;
            cin >> c;
            int d = c - '0';

            if (d > 0) {
                cells.push_back({d, i, j});
            }
        }
    }

    mt19937 rng(random_device{}());

    // タイブレーク用に全体をシャッフル
    shuffle(cells.begin(), cells.end(), rng);

    // 乾燥度の降順(同じ乾燥度ならシャッフル順を維持)
    stable_sort(cells.begin(), cells.end(),
                [](const Cell& a, const Cell& b) {
                    return a.d > b.d;
                });

    int M = min(K, (int)cells.size());

    cout << M << '\n';
    for (int k = 0; k < M; k++) {
        cout << cells[k].i << ' ' << cells[k].j << '\n';
    }

    return 0;
}
0