231532026-01-16 14:13:40khn08Cseppkőbarlang (45 pont)cpp17Hibás válasz 18/4546ms3472 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<long long int>>szl;
vector<bool>jart;
vector<int>be;

void dfs(int c){
    jart[c]=true;
    for(int x : szl[c]){
        if(!jart[x]) dfs(x);
    }

}
int main() {
	int n, m;
    cin>>n>>m;
    vector<vector<long long int>>t(n+1, vector<long long int>(m+1, 0));
    szl.resize(n*m+1);
    jart.resize(n*m+1);
    be.resize(n*m+1);
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            cin>>t[i][j];
            int k=(i-1)*m+j%m;
            if(j%m==0) k+=m;
            if(t[i][j]>0 && t[i][j-1]>0){
                if(t[i][j]>=t[i][j-1]){
                    szl[k-1].push_back(k);
                    be[k]++;
                }
                if(t[i][j]<=t[i][j-1]){
                    szl[k].push_back(k-1);
                    be[k-1]++;
                }
            }
            if(t[i][j]>0 && t[i-1][j]>0){
                if(t[i][j]>=t[i-1][j]){
                    szl[k-m].push_back(k);
                    be[k]++;
                }
                if(t[i][j]<=t[i-1][j]){
                    szl[k].push_back(k-m);
                    be[k-m]++;
                }
            }
        }
    }
    /*for(int i=1; i<=n*m; i++){
        for(int x : szl[i]) cout<<x<<" ";
    cout<<endl;
    }*/
   int db=0;
   vector<pair<int,int>>mo;
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            if(t[i][j]>0){
                int k=(i-1)*m+j%m;
                if(j%m==0) k+=m;
                if(!jart[k] && be[k]==0){
                    mo.push_back({i, j});
                    dfs(k);
                    db++;
                }
            }
    }
    }
    cout<<db<<endl;
    for(auto x : mo) cout<<x.first<<" "<<x.second<<endl;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base18/45
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Hibás válasz0/11ms508 KiB
4Hibás válasz0/11ms336 KiB
5Hibás válasz0/219ms3472 KiB
6Hibás válasz0/219ms3140 KiB
7Hibás válasz0/218ms3236 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/21ms316 KiB
10Elfogadva3/332ms2732 KiB
11Elfogadva3/346ms3380 KiB
12Elfogadva3/339ms2824 KiB
13Elfogadva3/337ms2808 KiB
14Elfogadva3/325ms2372 KiB
15Hibás válasz0/332ms3124 KiB
16Hibás válasz0/332ms3088 KiB
17Hibás válasz0/335ms3140 KiB
18Hibás válasz0/335ms2988 KiB
19Hibás válasz0/332ms2772 KiB
20Elfogadva3/343ms3124 KiB