Advertisement
Josif_tepe

Untitled

May 27th, 2022
638
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <queue>
  3. using namespace std;
  4.  
  5. int main() {
  6.     int redovi, koloni;
  7.     cin >> redovi >> koloni;
  8.    
  9.     int r, k;
  10.     cin >> r >> k;
  11.    
  12.     r--; // indeksite ni zapocnuvaat od indeks 0, dodeka vo zadacata ni se dadeni od 1 deka pocnuvaat
  13.     k--;
  14.    
  15.     int matrica[redovi][koloni];
  16.     int poseteno[redovi][koloni];
  17.    
  18.     for(int i = 0; i < redovi; i++) {
  19.         for(int j = 0; j < koloni; j++) {
  20.             poseteno[i][j] = 0;
  21.         }
  22.     }
  23.    
  24.     queue<int> Q;
  25.     Q.push(r);
  26.     Q.push(k);
  27.     Q.push(0);
  28.     poseteno[r][k] = 1;
  29.     int di[] = {+1, -1, 0, 0};
  30.     int dj[] = {0,  0,  -1, +1};
  31.     while(Q.size() > 0) {
  32.         int ci = Q.front();
  33.         Q.pop();
  34.         int cj = Q.front();
  35.         Q.pop();
  36.         int ucenik = Q.front();
  37.         Q.pop();
  38.         matrica[ci][cj] = ucenik;
  39.         for(int i = 0; i < 4; i++) {
  40.             int ti = ci + di[i];
  41.             int tj = cj + dj[i];
  42.            
  43.             if(ti >= 0 and ti < redovi and tj >= 0 and tj < koloni and poseteno[ti][tj] == 0) {
  44.                 Q.push(ti);
  45.                 Q.push(tj);
  46.                 Q.push(ucenik + 1);
  47.                 poseteno[ti][tj] = 1;
  48.             }
  49.         }
  50.        
  51.     }
  52.     int posleden_ucenik = 0;
  53.     for(int i = 0; i < redovi; i++) {
  54.         for(int j = 0; j < koloni; j++) {
  55.             if(posleden_ucenik < matrica[i][j]) {
  56.                 posleden_ucenik = matrica[i][j];
  57.             }
  58.         }
  59.     }
  60.    
  61.     int kolku_ucenici = 0;
  62.     for(int i = 0; i < redovi; i++) {
  63.         for(int j = 0; j < koloni; j++) {
  64.             if(matrica[i][j] == posleden_ucenik) {
  65.                 kolku_ucenici++;
  66.             }
  67.         }
  68.     }
  69.     cout << posleden_ucenik << endl;
  70.     cout << kolku_ucenici << endl;
  71.     return 0;
  72. }
  73.  
Advertisement
RAW Paste Data Copied
Advertisement