264612026-03-28 23:42:06kukkermanCseppkőbarlang (45 pont)cpp17Elfogadva 45/4516ms1648 KiB
#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>

using Terkep = std::vector<std::vector<int>>;

Terkep beolvas(std::istream &be = std::cin) {
    int n, m;
    be >> n >> m;

    Terkep t(n, std::vector<int>(m));
    for (auto &sor : t) {
        for (auto &x : sor) {
            be >> x;
        }
    }

    return t;
}

void melysegi(int s, int o, Terkep &t) {
    if (t[s][o] == 0) {
        return;
    }
    const int mag = t[s][o];
    t[s][o] = 0;

    static const int irany[4][2]{ -1, 0, 1, 0, 0, -1, 0, 1 };
    for (int i = 0; i < 4; i++) {
        const int a = s + irany[i][0];
        const int b = o + irany[i][1];

        if (a >= 0 && a < t.size() && b >= 0 && b < t[0].size() && mag <= t[a][b]) {
            melysegi(a, b, t);
        }
    }
}

void kezdopontok(Terkep &t) {
    const int n = t.size();
    const int m = t[0].size();

    std::vector<std::tuple<int, int, int>> poz;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (t[i][j] > 0) {
                poz.emplace_back(t[i][j], i, j);
            }
        }
    }
    sort(poz.begin(), poz.end());

    std::vector<std::pair<int, int>> kezd;
    for (const auto [_, s, o] : poz) {
        if (t[s][o] == 0) {
            continue;
        }

        kezd.emplace_back(s, o);
        melysegi(s, o, t);
    }

    using std::cout;

    cout << kezd.size() << '\n';
    for (const auto [s, o] : kezd) {
        cout << s + 1 << ' ' << o + 1 << '\n';
    }
}

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

    auto t = beolvas();
    kezdopontok(t);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base45/45
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms500 KiB
5Elfogadva2/29ms1648 KiB
6Elfogadva2/28ms1068 KiB
7Elfogadva2/28ms1108 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva3/310ms1084 KiB
11Elfogadva3/316ms1332 KiB
12Elfogadva3/312ms1080 KiB
13Elfogadva3/312ms1056 KiB
14Elfogadva3/38ms820 KiB
15Elfogadva3/313ms1092 KiB
16Elfogadva3/313ms1076 KiB
17Elfogadva3/313ms1088 KiB
18Elfogadva3/313ms1116 KiB
19Elfogadva3/312ms1072 KiB
20Elfogadva3/314ms1336 KiB