Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <queue>
- 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<int> 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement