From 96254947699986c59f0dc63d69fd4b76bd3ed43e Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 6 Jul 2026 19:08:08 +0200 Subject: Initial commit --- .../palindrome_reorder_1755.cpp | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 01_introductory_problems/palindrome_reorder_1755.cpp (limited to '01_introductory_problems/palindrome_reorder_1755.cpp') diff --git a/01_introductory_problems/palindrome_reorder_1755.cpp b/01_introductory_problems/palindrome_reorder_1755.cpp new file mode 100644 index 0000000..8ebf4f4 --- /dev/null +++ b/01_introductory_problems/palindrome_reorder_1755.cpp @@ -0,0 +1,35 @@ +#include +#include + +void printn(char c, int n) { + for (int i = 0; i < n; i++) + std::cout << c; +} + +int main() { + std::string s; + int odd{0}, a['Z'+1] = {0}; + char oddc{0}; + std::cin >> s; + for (auto c : s) + a[(size_t)c]++; + for (char c = 'A'; c <= 'Z'; c++) { + if (a[(size_t)c] % 2) { + odd++; + oddc = c; + } + } + if (odd > 1) { + std::cout << "NO SOLUTION\n"; + } else { + for (char c = 'A'; c <= 'Z'; c++) + if (c != oddc) + printn(c, a[(size_t)c]/2); + if (odd) + printn(oddc, a[(size_t)oddc]); + for (char c = 'Z'; c >= 'A'; c--) + if (c != oddc) + printn(c, a[(size_t)c]/2); + std::cout << std::endl; + } +} -- cgit v1.3