Я хотю бачити красу і симетрію, шось типу такого :
#include <vector>
#include <array>
using arr_t = std::array<int, 4>;
using vec_t = std::vector<arr_t>;
static vec_t const rot = {
{ 0, 1, 2, 3 },
{ 2, 0, 3, 1 },
{ 1, 3, 0, 2 },
{ 3, 2, 1, 0 },
};
static arr_t const &ord = rot.front();
bool same(arr_t const &a, arr_t const &b) {
return std::any_of(rot.cbegin(), rot.cend(), [&a, &b](arr_t const &x) {
return std::all_of(ord.cbegin(), ord.cend(), [&a, &b, &x](int const i) {
return a[i] == b[x[i]];
});
});
}
int count_different_matrices(vec_t &m) {
for(auto b = m.begin(); ++b != m.end(); )
for(auto a = m.begin(); a != b; ++a)
if(same(*a, *b)) {
m.erase(b--);
break;
}
return m.size();
}
Але мені не подобається складність O(n^2) в такому рішеню.
▼для koala
Зайшов подивити шо там інші пишуть, а там koala вже на вершині Олімпу.
Як тобі вдалось досягнути 1 kyu ?