profile
Размещено 5 лет назад по предмету Информатика от regressor04

Слоны и ладьи

На шахматной доске расположены несколько слонов и ладей. По условным буквенным обозначениям фигур и их координатам определите, сколько свободных полей шахматной доски не находятся под боем ни одной из этих фигур.


Входные данные


Шахматная доска описывается в восьми строках входных данных. Первые восемь символов каждой из этих строк описывают состояние соответствующей горизонтали: символ B (заглавная латинская буква) означает, что в клетке стоит слон, символ R — ладья, символ * — что клетка пуста.


Выходные данные


Выведите количество пустых клеток, которые не бьет ни одна из фигур.


Примеры

Ввод

Вывод

********

********

*R******

********

********

********

********

**Помогите написать программу на python или с++!!!!!

  1. Ответ на вопрос
    Ответ на вопрос дан nekit2006srd

    Ответ:

    #include <bits/stdc++.h>

    using namespace std;

    char a[8][8];

    void R(int y, int x){

       for(int q = y - 1; q >= 0 and a[q][x] != 'B' and a[q][x] != 'R'; q--){

           a[q][x] = '.';

       }

       for(int q = y + 1; q < 8 and a[q][x] != 'B' and a[q][x] != 'R'; q++){

           a[q][x] = '.';

       }

       for(int q = x - 1; q >= 0 and a[y][q] != 'B' and a[y][q] != 'R'; q--){

           a[y][q] = '.';

       }

       for(int q = x + 1; q < 8 and a[y][q] != 'B' and a[y][q] != 'R'; q++){

           a[y][q] = '.';

       }

    }

    void B(int y, int x){

       int q, e;

       q = y - 1;

       e = x - 1;

       for(;q >= 0 and e >= 0 and a[q][e] != 'B' and a[q][e] != 'R';){

           a[q][e] = '.';

           q--;

           e--;

       }

       q = y + 1;

       e = x + 1;

       for(;q < 8 and e < 8 and a[q][e] != 'B' and a[q][e] != 'R';){

           a[q][e] = '.';

           q++;

           e++;

       }

       q = y - 1;

       e = x + 1;

       for(;q >= 0 and e < 8 and a[q][e] != 'B' and a[q][e] != 'R';){

           a[q][e] = '.';

           q--;

           e++;

       }

       q = y + 1;

       e = x - 1;

       for(;q < 8 and e >= 0 and a[q][e] != 'B' and a[q][e] != 'R';){

           a[q][e] = '.';

           q++;

           e--;

       }

    }

    int main(){

       for(int i = 0; i < 8; i++){

           for(int j = 0; j < 8; j++){

               cin >> a[i][j];

           }

       }

       for(int i = 0; i < 8; i++){

           for(int j = 0; j < 8; j++){

               if(a[i][j] == 'R'){

                   R(i, j);

               }

               if(a[i][j] == 'B'){

                   B(i, j);

               }

           }

       }

       int k = 0;

       for(int i = 0; i < 8; i++){

           for(int j = 0; j < 8; j++){

               if(a[i][j] == '*'){

                   k++;

               }

           }

       }

       cout << k;

       return 0;

    }

    Объяснение:

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.