Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bg.h"
- матрицаОтСимволи прочетиВход(целочислено& размер) {
- матрицаОтСимволи матрица;
- за (целочислено и = 0; и < размер; ++и) {
- масивОтСимволи ред;
- за (целочислено ж = 0; ж < размер; ++ж) {
- символ с;
- прочети >> с;
- ред.вкарай(с);
- }
- матрица.вкарай(ред);
- }
- върни матрица;
- }
- масивОтСимволи открийЕлементи(матрицаОтСимволи& матрица) {
- масивОтСимволи елементи;
- за (всеки& ред : матрица) {
- for (всеки& елемент : ред) {
- ако (намери(елементи.начало(), елементи.край(), елемент) == елементи.край() && елемент != '.') {
- елементи.вкарай(елемент);
- }
- }
- }
- върни елементи;
- }
- матрицаОтДвойки открийКоординати(матрицаОтСимволи матрица, масивОтСимволи& елементи) {
- матрицаОтДвойки координати;
- масивОтЧисла глитчнатиРедове;
- масивОтЧисла глитчнатиКолони;
- за (всеки& елемент : елементи) {
- целочислено найГолямГлитчнатРед = 0;
- целочислено найГолямИндекс = 0;
- за (целочислено и = 0; и < матрица.размер(); ++и) {
- целочислено моментенГлитчнатРед = 0;
- за (целочислено ж = 0; ж < матрица.размер(); ++ж) {
- ако (матрица[и][ж] == елемент) {
- моментенГлитчнатРед++;
- }
- }
- if (моментенГлитчнатРед > найГолямГлитчнатРед) {
- найГолямГлитчнатРед = моментенГлитчнатРед;
- найГолямИндекс = и;
- }
- }
- глитчнатиРедове.вкарай(найГолямИндекс);
- }
- за (всеки& елемент : елементи) {
- твърдение намерено = грешно;
- за (целочислено и = 0; и < матрица.размер(); ++и) {
- за (целочислено ж = 0; ж < матрица.размер(); ++ж) {
- ако (матрица[и][ж] == елемент) {
- глитчнатиКолони.вкарай(ж);
- намерено = вярно;
- прекъсни;
- }
- }
- ако (намерено) прекъсни;
- }
- }
- за (целочислено и = 0; и < глитчнатиРедове.размер(); ++и) {
- координати.създай_и_вкарай(глитчнатиРедове[и], глитчнатиКолони[и]);
- }
- върни координати;
- }
- матрицаОтСимволи намериРешение(целочислено& размер, матрицаОтДвойки& координати, масивОтСимволи& елементи) {
- матрицаОтСимволи решение;
- за (целочислено и = 0; и < размер; ++и) {
- масивОтСимволи ред;
- за (целочислено ж = 0; ж < размер; ++ж) {
- ред.вкарай('.');
- }
- решение.вкарай(ред);
- }
- за (целочислено и = 0; и < елементи.размер(); ++и) {
- решение[координати[и].първи][координати[и].втори] = елементи[и];
- }
- върни решение;
- }
- функция принтирайРешение(матрицаОтСимволи& решение) {
- принтирай << нов_ред;
- за (всеки& ред : решение) {
- за (всеки& елемент : ред) {
- принтирай << елемент;
- }
- принтирай << нов_ред;
- }
- }
- целочислено main() {
- целочислено размер = 0;
- прочети >> размер;
- матрицаОтСимволи матрица = прочетиВход(размер);
- масивОтСимволи елементи = открийЕлементи(матрица);
- матрицаОтДвойки координати = открийКоординати(матрица, елементи);
- матрицаОтСимволи решение = намериРешение(размер, координати, елементи);
- принтирайРешение(решение);
- }
Advertisement
Add Comment
Please, Sign In to add comment