230812026-01-16 11:44:15KevinCseppkőbarlang (45 pont)cpp14Accepted 45/4510ms1392 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

vector<vector<ll>> vec;
vector<vector<bool>> check;

void v(ll i, ll j){
    check[i][j]=true;
    if (!check[i+1][j] && vec[i][j]<=vec[i+1][j]) v(i+1, j);
    if (!check[i-1][j] && vec[i][j]<=vec[i-1][j]) v(i-1, j);
    if (!check[i][j+1] && vec[i][j]<=vec[i][j+1]) v(i, j+1);
    if (!check[i][j-1] && vec[i][j]<=vec[i][j-1]) v(i, j-1);
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	ll n, m; cin >> n >> m;
    vec.assign(n+2, vector<ll> (m+2, 1e9+1));
    check.assign(n+2, vector<bool> (m+2, true));
    for (ll i=1; i<=n; i++)
        for (ll j=1;j<=m;j++){
            cin >> vec[i][j];
            check[i][j]=false;
            if (vec[i][j]==0){
                vec[i][j]=1e9+1;
                check[i][j]=true;
            }
        }
    vector<pll> out;
    for (ll i=1; i<=n; i++){
        for (ll j=1;j<=m;j++){
            if (!check[i][j]){
                if (vec[i][j]>vec[i+1][j] || vec[i][j]>vec[i-1][j] || vec[i][j]>vec[i][j+1] || vec[i][j]>vec[i][j-1])
                    v(i, j);
                if (vec[i][j]<vec[i+1][j] && vec[i][j]<vec[i-1][j] && vec[i][j]<vec[i][j+1] && vec[i][j]<vec[i][j-1]){
                    out.push_back({i, j});
                    v(i, j);
                }
            }
        }
    }
    for (ll i=1; i<=n; i++){
        for (ll j=1;j<=m;j++){
            if (!check[i][j]){
                out.push_back({i, j});
                v(i, j);
            }
        }
    }
    cout << out.size() << '\n';
    for (auto& z:out) cout << z.first << ' ' << z.second << '\n';
}
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/01ms512 KiB
2Accepted0/01ms316 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted2/28ms1392 KiB
6Accepted2/27ms836 KiB
7Accepted2/27ms1108 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted3/38ms1132 KiB
11Accepted3/310ms1228 KiB
12Accepted3/38ms1092 KiB
13Accepted3/38ms1028 KiB
14Accepted3/37ms1076 KiB
15Accepted3/38ms1076 KiB
16Accepted3/38ms1076 KiB
17Accepted3/38ms1132 KiB
18Accepted3/38ms1168 KiB
19Accepted3/38ms1204 KiB
20Accepted3/39ms1220 KiB