#include #include #include #include #include #include #include #define max 1000 using namespace std; int griglia[max][max]; int m,n,p; void rec(int i,int j){ if(griglia[i][j] == 1) { griglia[i][j] = 0; if((i+1) < m) rec(i+1,j); if((j+1) < n) rec(i,j+1); if((i) > 0) rec(i-1,j); if((j) > 0) rec(i,j-1); } } int main(){ int a,b; int c = 0; ifstream fin("input.txt");assert(fin); fin >> m; fin >> n; fin >> p; //griglia = (int**)malloc(m*n*sizeof(int)); for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) griglia[i][j] = 0; for(int i = 0; i < p; i++) { fin >> a; fin >> b; a--; b--; griglia[a][b] = 1; } fin.close(); for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if (griglia[i][j] == 1) { c++; rec(i,j); } } } ofstream fout("output.txt"); fout << c << endl; fout.close(); }