ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1712. Шифровальная решётка

С++ AC
Послано D4nick 30 янв 2019 19:05
You can use formulas to change coordinates, it should be better, but I don't know them :(
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector <vector <char>> reshor(4, vector <char>(4)), par(4, vector <char>(4)), resh(4, vector <char>(4));
void rot() {
    for (int i = 0, j2 =0; i < 4; i++, j2++)
         for (int j = 0, i2 = 3; j < 4; j++, i2--)
                    resh[i][j] = reshor[i2][j2];
    reshor = resh;
}
int main() {
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++) {
            cin >> reshor[i][j];
            resh[i][j] = reshor[i][j];
        }
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
            cin >> par[i][j];
    string ans;
    for (int a = 0; a < 4; a++) {
        for (int i = 0; i < 4; i++)
            for (int j = 0; j < 4; j++)
                if (resh[i][j] == 'X')
                    ans.push_back(par[i][j]);
        rot();
    }
    cout << ans;
}

Edited by author 30.01.2019 19:06