231492026-01-16 13:59:00khn08Cseppkőbarlang (45 pont)cpp17Hibás válasz 12/4532ms4384 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<long long int>>szl;
vector<bool>jart;

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);
    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){
                szl[k].push_back(k-1);
                szl[k-1].push_back(k);
            }
            if(t[i][j]>0 && t[i-1][j]>0){
                szl[k].push_back(k-m);
                szl[k-m].push_back(k);
            }
        }
    }
    /*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]){
                    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
base12/45
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/221ms3544 KiB
6Elfogadva2/224ms2780 KiB
7Elfogadva2/220ms3084 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Hibás válasz0/329ms2616 KiB
11Hibás válasz0/332ms4384 KiB
12Hibás válasz0/328ms3260 KiB
13Hibás válasz0/326ms3348 KiB
14Hibás válasz0/324ms2100 KiB
15Hibás válasz0/323ms3124 KiB
16Hibás válasz0/320ms3636 KiB
17Hibás válasz0/321ms3124 KiB
18Hibás válasz0/324ms3124 KiB
19Hibás válasz0/324ms2832 KiB
20Hibás válasz0/332ms3788 KiB