#include <iostream> #include <vector> #include <cstdint> #include <algorithm> #include <random> typedef std::vector<std::intmax_t> DType; DType MakeVector(const std::size_t& N,const unsigned int& S=0) { std::mt19937 mt(S); std::uniform_int_distribution<std::intmax_t> ui(0, N); DType R; for (std::size_t i = 0; i < N; i++) { R.push_back(ui(mt)); } return R; } DType OddSort(DType D) { for (std::size_t i = 0; i < D.size(); i++) { if (i % 2 == 0) { continue; } for (std::size_t j = i+1; j < D.size(); j++) { if (j % 2 == 0) { continue; } if (D[i] > D[j]) { std::swap(D[i], D[j]); } } } return D; } DType EvenSort(DType D) { for (std::size_t i = 0; i < D.size(); i++) { if (i % 2 == 1) { continue; } for (std::size_t j = i+1; j < D.size(); j++) { if (j % 2 == 1) { continue; } if (D[i]/2 > D[j]/2) { std::swap(D[i], D[j]); } } } return D; } int main() { DType D; DType O; DType E; D = MakeVector(15); O = OddSort(D); E = EvenSort(O); for (auto& o : D) { std::cout << o << ','; } std::cout << std::endl; for (auto& o : E) { std::cout << o << ','; } std::cout << std::endl; for (std::size_t i = 1; i < E.size(); i += 2) { std::cout << E[i]<<','; } std::cout << std::endl; for (std::size_t i = 0; i < E.size(); i += 2) { std::cout << E[i]<<','; } std::cout << std::endl; return 0; }
Standard input is empty
8,9,11,13,9,13,8,13,6,9,10,6,7,4,14, 6,4,7,6,8,9,8,9,9,13,10,13,11,13,14, 4,6,9,9,13,13,13, 6,7,8,8,9,10,11,14,