230512026-01-16 11:18:25KevinCseppkőbarlang (45 pont)cpp14Hibás válasz 30/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);
                else{
                    out.push_back({i, j});
                    v(i, j);
                }
            }
        }
    }
    cout << out.size() << '\n';
    for (auto& z:out) cout << z.first << ' ' << z.second << '\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/45
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms508 KiB
3Elfogadva1/11ms508 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/27ms1392 KiB
6Elfogadva2/27ms820 KiB
7Elfogadva2/27ms1076 KiB
8Elfogadva2/21ms364 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva3/38ms1116 KiB
11Elfogadva3/310ms1132 KiB
12Elfogadva3/38ms1076 KiB
13Elfogadva3/38ms1028 KiB
14Elfogadva3/37ms1076 KiB
15Hibás válasz0/38ms1092 KiB
16Hibás válasz0/38ms1076 KiB
17Hibás válasz0/38ms1076 KiB
18Hibás válasz0/38ms1332 KiB
19Hibás válasz0/38ms1212 KiB
20Elfogadva3/310ms1104 KiB