Advertisement
Josif_tepe

Untitled

Apr 29th, 2022
890
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None
  1. #include <iostream>
  2. #include <queue>
  3. using namespace std;
  4.  
  5. int main() {
  6.     int redovi, koloni;
  7.     cin >> redovi >> koloni;
  8.    
  9.     char lavirint[redovi][koloni];
  10.     int poseteno[redovi][koloni];
  11.     for(int i = 0; i < redovi; i++) {
  12.         for(int j = 0; j < koloni; j++) {
  13.             cin >> lavirint[i][j];
  14.             poseteno[i][j] = 0;
  15.         }
  16.     }
  17.     int ovci_pobedeno = 0, volci_pobedeno = 0;
  18.    
  19.     for(int i = 0; i < redovi; i++) {
  20.         for(int j = 0; j < koloni; j++) {
  21.             if(lavirint[i][j] != '#' and poseteno[i][j] == 0) {
  22.                 queue<int> Q;
  23.                 Q.push(i);
  24.                 Q.push(j);
  25.                 poseteno[i][j] = 1;
  26.                 int ovci = 0, volci = 0;
  27.                 while(Q.size() > 0) {
  28.                     int ci = Q.front();
  29.                     Q.pop();
  30.                     int cj = Q.front();
  31.                     Q.pop();
  32.                    
  33.                     if(lavirint[ci][cj] == 'o') {
  34.                         ovci++;
  35.                     }
  36.                     if(lavirint[ci][cj] == 'v') {
  37.                         volci++;
  38.                     }
  39.                     if(ci + 1 < redovi and lavirint[ci + 1][cj] != '#' and poseteno[ci + 1][cj] == 0) {
  40.                         Q.push(ci + 1);
  41.                         Q.push(cj);
  42.                         poseteno[ci + 1][cj] = 1;
  43.                     }
  44.                     if(ci - 1 >= 0 and lavirint[ci - 1][cj] != '#' and poseteno[ci - 1][cj] == 0) {
  45.                         Q.push(ci - 1);
  46.                         Q.push(cj);
  47.                         poseteno[ci - 1][cj] = 1;
  48.                     }
  49.                     if(cj + 1 < koloni and lavirint[ci][cj + 1] != '#' and poseteno[ci][cj + 1] == 0) {
  50.                         Q.push(ci);
  51.                         Q.push(cj + 1);
  52.                         poseteno[ci][cj + 1] = 1;
  53.                     }
  54.                     if(cj - 1 >= 0 and lavirint[ci][cj - 1] != '#' and poseteno[ci][cj - 1] == 0) {
  55.                         Q.push(ci);
  56.                         Q.push(cj - 1);
  57.                         poseteno[ci][cj - 1] = 1;
  58.                     }
  59.                 }
  60.                 if(ovci > volci) {
  61.                     ovci_pobedeno += ovci;
  62.                 }
  63.                 else {
  64.                     volci_pobedeno += volci;
  65.                 }
  66.             }
  67.         }
  68.     }
  69.     cout << ovci_pobedeno << " " << volci_pobedeno << endl;
  70.     return 0;
  71. }
  72. /*
  73.  
  74.  8 8
  75.  .######.
  76.  #..o...#
  77.  #.####.#
  78.  #.#v.#.#
  79.  #.#.o#o#
  80.  #o.##..#
  81.  #.v..v.#
  82.  .######.
  83.  **/
  84.  
Advertisement
RAW Paste Data Copied
Advertisement