C++ ARRAYS Сортировка
У меня есть массив размерности n*n,у меня есть идея чтобы отсортировать его так, чтобы на месте первой строки был первый столбик, на месте второй строки второй столбик и т.д. Как это можно реализовать?)
Пытался делать через фор + счётчик, но всё шло коту под хвост(
https://www.eolymp.com/ru/contests/29833/problems/347361
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Это называется транспонирование...
int a[n][n];
for(int i = 0; i < n; ++i)
for(int j = i+1; j < n; ++j)
{
int tmp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = tmp;
}
Примерно так. Это то, что вы хотели?
Update
В вашей задаче не нужны никакие сортировки/транспонирования. Даже матрица не нужна...
int main(int argc, char * argv[])
{
int x, n;
cin >> x >> n;
vector<bool> v(n,false);
for(int y, i = 0; i < n*n; ++i)
{
cin >> y;
if (x == y) v[i%n] = true;
}
for(int i = 0; i < n; ++i)
cout << (v[i]? "YES" : "NO") << "\n";
}