CCCPaste

Untitled

#include 
#include 
using namespace std;

int main() {
    int redovi, koloni;
    cin >> redovi >> koloni;
    
    int r, k;
    cin >> r >> k;
    
    r--; // indeksite ni zapocnuvaat od indeks 0, dodeka vo zadacata ni se dadeni od 1 deka pocnuvaat
    k--;
    
    int matrica[redovi][koloni];
    int poseteno[redovi][koloni];
    
    for(int i = 0; i < redovi; i++) {
        for(int j = 0; j < koloni; j++) {
            poseteno[i][j] = 0;
        }
    }
    
    queue Q;
    Q.push(r);
    Q.push(k);
    Q.push(0);
    poseteno[r][k] = 1;
    int di[] = {+1, -1, 0, 0};
    int dj[] = {0,  0,  -1, +1};
    while(Q.size() > 0) {
        int ci = Q.front();
        Q.pop();
        int cj = Q.front();
        Q.pop();
        int ucenik = Q.front();
        Q.pop();
        matrica[ci][cj] = ucenik;
        for(int i = 0; i < 4; i++) {
            int ti = ci + di[i];
            int tj = cj + dj[i];
            
            if(ti >= 0 and ti < redovi and tj >= 0 and tj < koloni and poseteno[ti][tj] == 0) {
                Q.push(ti);
                Q.push(tj);
                Q.push(ucenik + 1);
                poseteno[ti][tj] = 1;
            }
        }
        
    }
    int posleden_ucenik = 0;
    for(int i = 0; i < redovi; i++) {
        for(int j = 0; j < koloni; j++) {
            if(posleden_ucenik < matrica[i][j]) {
                posleden_ucenik = matrica[i][j];
            }
        }
    }
   
    int kolku_ucenici = 0;
    for(int i = 0; i < redovi; i++) {
        for(int j = 0; j < koloni; j++) {
            if(matrica[i][j] == posleden_ucenik) {
                kolku_ucenici++;
            }
        }
    }
    cout << posleden_ucenik << endl;
    cout << kolku_ucenici << endl;
    return 0;
}