diff --git a/codeforces/826/1741a.cc b/codeforces/826/1741a.cc new file mode 100644 index 0000000..fe64211 --- /dev/null +++ b/codeforces/826/1741a.cc @@ -0,0 +1,92 @@ +#include // {{{ + +#include +#ifdef __cpp_lib_ranges_enumerate +#include +namespace rv = std::views; +namespace rs = std::ranges; +#endif + +#pragma GCC optimize("O2,unroll-loops") +#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") + +using namespace std; + +using i16 = int16_t; +using u16 = uint16_t; +using i32 = int32_t; +using u32 = uint32_t; +using i64 = int64_t; +using u64 = uint64_t; +using f64 = double; +using f128 = long double; + +#if __cplusplus >= 202002L +template constexpr T MIN = std::numeric_limits::min(); + +template constexpr T MAX = std::numeric_limits::max(); +#endif + +#ifdef LOCAL +#define db(...) std::print(__VA_ARGS__) +#define dbln(...) std::println(__VA_ARGS__) +#else +#define db(...) +#define dbln(...) +#endif +// }}} + +void solve() { + string a, b; + cin >> a >> b; + + u32 i = 0, j = 0; + + while (i < a.size() && j < b.size()) { + u32 a_xs = 0, b_xs = 0; + while (a[i] == 'X') { + ++a_xs; + ++i; + } + while (b[j] == 'X') { + ++b_xs; + ++j; + } + + if (a[i] == b[j]) { + if (a_xs != b_xs) { + cout << ((a[i] == 'S' && a_xs < b_xs || a[i] == 'L' && a_xs > b_xs) + ? '>' + : '<') + << '\n'; + return; + } + } else { + cout << ((a[i] == 'S' || a[i] == 'M' && b[j] == 'L') ? '<' : '>') << '\n'; + return; + } + + ++i; + ++j; + } + + cout << "=\n"; +} + +int main() { // {{{ + std::cin.exceptions(std::cin.failbit); +#ifdef LOCAL + std::cerr.rdbuf(std::cout.rdbuf()); + std::cout.setf(std::ios::unitbuf); + std::cerr.setf(std::ios::unitbuf); +#else + std::cin.tie(nullptr)->sync_with_stdio(false); +#endif + u32 tc = 1; + std::cin >> tc; + for (u32 t = 0; t < tc; ++t) { + solve(); + } + return 0; +} +// }}} diff --git a/codeforces/826/1741b.cc b/codeforces/826/1741b.cc new file mode 100644 index 0000000..e84ec7f --- /dev/null +++ b/codeforces/826/1741b.cc @@ -0,0 +1,76 @@ +#include // {{{ + +#include +#ifdef __cpp_lib_ranges_enumerate +#include +namespace rv = std::views; +namespace rs = std::ranges; +#endif + +#pragma GCC optimize("O2,unroll-loops") +#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") + +using namespace std; + +using i16 = int16_t; +using u16 = uint16_t; +using i32 = int32_t; +using u32 = uint32_t; +using i64 = int64_t; +using u64 = uint64_t; +using f64 = double; +using f128 = long double; + +#if __cplusplus >= 202002L +template constexpr T MIN = std::numeric_limits::min(); + +template constexpr T MAX = std::numeric_limits::max(); +#endif + +#ifdef LOCAL +#define db(...) std::print(__VA_ARGS__) +#define dbln(...) std::println(__VA_ARGS__) +#else +#define db(...) +#define dbln(...) +#endif +// }}} + +void solve() { + u32 n; + cin >> n; + + if (n == 1 || n == 3) { + cout << "-1\n"; + return; + } + + u32 x = n, i = 1; + for (; i <= n / 2; ++i, --x) { + cout << x << ' '; + } + x = 1; + for (; i <= n; ++i, ++x) { + cout << x << " \n" + [i == n]; + } +} + +int main() { // {{{ + std::cin.exceptions(std::cin.failbit); +#ifdef LOCAL + std::cerr.rdbuf(std::cout.rdbuf()); + std::cout.setf(std::ios::unitbuf); + std::cerr.setf(std::ios::unitbuf); +#else + std::cin.tie(nullptr)->sync_with_stdio(false); +#endif + u32 tc = 1; + std::cin >> tc; + for (u32 t = 0; t < tc; ++t) { + solve(); + } + return 0; +} +// }}} + diff --git a/codeforces/826/1741c.cc b/codeforces/826/1741c.cc new file mode 100644 index 0000000..7e034a6 --- /dev/null +++ b/codeforces/826/1741c.cc @@ -0,0 +1,91 @@ +#include // {{{ + +#include +#ifdef __cpp_lib_ranges_enumerate +#include +namespace rv = std::views; +namespace rs = std::ranges; +#endif + +#pragma GCC optimize("O2,unroll-loops") +#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") + +using namespace std; + +using i16 = int16_t; +using u16 = uint16_t; +using i32 = int32_t; +using u32 = uint32_t; +using i64 = int64_t; +using u64 = uint64_t; +using f64 = double; +using f128 = long double; + +#if __cplusplus >= 202002L +template constexpr T MIN = std::numeric_limits::min(); + +template constexpr T MAX = std::numeric_limits::max(); +#endif + +#ifdef LOCAL +#define db(...) std::print(__VA_ARGS__) +#define dbln(...) std::println(__VA_ARGS__) +#else +#define db(...) +#define dbln(...) +#endif +// }}} + +void solve() { + u32 n; + cin >> n; + vector a(n); + for (u32 i = 0; i < n; ++i) { + cin >> a[i]; + } + + u32 ans = n; + u64 target = 0; + + for (u32 i = 1; i <= n; ++i) { + target += a[i - 1]; + u32 big_block = i; + u32 curlen = 0; + u64 total = 0; + for (u32 j = i + 1; j <= n; ++j) { + total += a[j - 1]; + ++curlen; + if (total == target) { + big_block = max(big_block, curlen); + total = 0; + curlen = 0; + } else if (total > target) { + break; + } + } + + if (total == 0) + ans = min(ans, big_block); + } + + cout << ans << '\n'; +} + +int main() { // {{{ + std::cin.exceptions(std::cin.failbit); +#ifdef LOCAL + std::cerr.rdbuf(std::cout.rdbuf()); + std::cout.setf(std::ios::unitbuf); + std::cerr.setf(std::ios::unitbuf); +#else + std::cin.tie(nullptr)->sync_with_stdio(false); +#endif + u32 tc = 1; + std::cin >> tc; + for (u32 t = 0; t < tc; ++t) { + solve(); + } + return 0; +} +// }}} + diff --git a/codeforces/826/1741d.cc b/codeforces/826/1741d.cc new file mode 100644 index 0000000..a7e05f7 --- /dev/null +++ b/codeforces/826/1741d.cc @@ -0,0 +1,107 @@ +#include // {{{ + +#include +#ifdef __cpp_lib_ranges_enumerate +#include +namespace rv = std::views; +namespace rs = std::ranges; +#endif + +#pragma GCC optimize("O2,unroll-loops") +#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") + +using namespace std; + +using i16 = int16_t; +using u16 = uint16_t; +using i32 = int32_t; +using u32 = uint32_t; +using i64 = int64_t; +using u64 = uint64_t; +using f64 = double; +using f128 = long double; + +#if __cplusplus >= 202002L +template constexpr T MIN = std::numeric_limits::min(); + +template constexpr T MAX = std::numeric_limits::max(); +#endif + +#ifdef LOCAL +#define db(...) std::print(__VA_ARGS__) +#define dbln(...) std::println(__VA_ARGS__) +#else +#define db(...) +#define dbln(...) +#endif +// }}} + +void solve() { + u32 n; + cin >> n; + vector a(n); + for (auto &e : a) + cin >> e; + + auto f = [&](auto &&self, i32 l, i32 r) -> i64 { + if (l + 1 == r) { + return 0; + } + + i32 m = l + (r - l) / 2; + + i64 left = self(self, l, m); + i64 right = self(self, m, r); + + if (left == -1 || right == -1) { + return -1; + } + + bool ok = true; + for (i32 i = l; i < r - 1; ++i) { + ok = ok && (a[i] < a[i + 1]); + } + + if (ok) { + return left + right; + } + + ok = true; + i32 j = m; + for (i32 i = 0; i < r - l - 1; ++i) { + i32 next = (j == r - 1 ? l : j + 1); + ok = ok && (a[j] < a[next]); + j = next; + } + + if (ok) { + for (i32 i = 0; i < m - l; ++i) { + swap(a[l + i], a[m + i]); + } + return 1 + left + right; + } + + return -1; + }; + + cout << f(f, 0, n) << '\n'; +} + +int main() { // {{{ + std::cin.exceptions(std::cin.failbit); +#ifdef LOCAL + std::cerr.rdbuf(std::cout.rdbuf()); + std::cout.setf(std::ios::unitbuf); + std::cerr.setf(std::ios::unitbuf); +#else + std::cin.tie(nullptr)->sync_with_stdio(false); +#endif + u32 tc = 1; + std::cin >> tc; + for (u32 t = 0; t < tc; ++t) { + solve(); + } + return 0; +} +// }}} + diff --git a/codeforces/826/1741e.cc b/codeforces/826/1741e.cc new file mode 100644 index 0000000..043aeb3 --- /dev/null +++ b/codeforces/826/1741e.cc @@ -0,0 +1,82 @@ +#include // {{{ + +#include +#ifdef __cpp_lib_ranges_enumerate +#include +namespace rv = std::views; +namespace rs = std::ranges; +#endif + +#pragma GCC optimize("O2,unroll-loops") +#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") + +using namespace std; + +using i16 = int16_t; +using u16 = uint16_t; +using i32 = int32_t; +using u32 = uint32_t; +using i64 = int64_t; +using u64 = uint64_t; +using f64 = double; +using f128 = long double; + +#if __cplusplus >= 202002L +template +constexpr T MIN = std::numeric_limits::min(); + +template +constexpr T MAX = std::numeric_limits::max(); +#endif + +#ifdef LOCAL +#define db(...) std::print(__VA_ARGS__) +#define dbln(...) std::println(__VA_ARGS__) +#else +#define db(...) +#define dbln(...) +#endif +// }}} + +void solve() { + u32 n; + cin >> n; + vector a(n); + for (auto& e : a) cin >> e; + + vector dp(n + 1, false); + dp[0] = true; + for (i32 i = 1; i <= n; ++i) { + if (i + a[i - 1] <= n && dp[i - 1]) { + dp[i + a[i - 1]] = true; + } + if (i - a[i - 1] - 1 >= 0 && dp[i - a[i - 1] - 1]) { + dp[i] = true; + } + } + + if (dp.back()) { + cout << "YES\n"; + } else { + cout << "NO\n"; + } +} + +int main() { // {{{ + std::cin.exceptions(std::cin.failbit); +#ifdef LOCAL + std::cerr.rdbuf(std::cout.rdbuf()); + std::cout.setf(std::ios::unitbuf); + std::cerr.setf(std::ios::unitbuf); +#else + std::cin.tie(nullptr)->sync_with_stdio(false); +#endif + u32 tc = 1; + std::cin >> tc; + for (u32 t = 0; t < tc; ++t) { + solve(); + } + return 0; +} +// }}} +