• Предмет: Информатика
  • Автор: 2demchenko227
  • Вопрос задан 1 год назад

С++
Дана целочисленная матрица A[N][N]. Сформировать одномерный массив X[2N] по следующему правилу: элементами одномерного массива с нечетными индексами будут элементы главной диагонали матрицы, а с четными - побочной диагонали. Определить, какое значение массива X чаще всего встречается в нем самом.

Ответы

Ответ дал: itest
0

#include <iostream>

#include <vector>

#include <map>

using namespace std;

int main(){

   int n;

   cin >> n;

   vector<vector<int>> a(n, vector<int> (n));

   vector<int> x(2*n);

   map<int,int> m;

   for(int i = 0; i < n; i++)

       for(int j = 0; j < n; j++)

           cin >> a[i][j];

   int cur1 = 1, cur2 = 0, elem = 0, cnt = 0;

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

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

           if(i == j){

               x[cur1] = a[i][j];

               cur1 += 2;

               m[a[i][j]]++;

               if(m[a[i][j]] > cnt){

                   cnt = m[a[i][j]];

                   elem = a[i][j];

               }

           }

           if(i + j == n - 1){

               x[cur2] = a[i][j];

               cur2 += 2;

               m[a[i][j]]++;

               if(m[a[i][j]] > cnt){

                   cnt = m[a[i][j]];

                   elem = a[i][j];

               }

           }

       }

   }

   for(auto &i : x) cout << i << " ";

   cout << "\nThe most popular element is : " << elem;

}

Вас заинтересует