cleanup
This commit is contained in:
parent
d923953692
commit
02eaf3965e
36 changed files with 49 additions and 1242 deletions
93
codeforces/1054/d.cc
Normal file
93
codeforces/1054/d.cc
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
#include <bits/stdc++.h> // {{{
|
||||
|
||||
#include <version>
|
||||
#ifdef __cpp_lib_ranges_enumerate
|
||||
#include <ranges>
|
||||
namespace rv = std::views;
|
||||
namespace rs = std::ranges;
|
||||
#endif
|
||||
|
||||
// https://codeforces.com/blog/entry/96344
|
||||
|
||||
#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 <typename T> constexpr T MIN = std::numeric_limits<T>::min();
|
||||
|
||||
template <typename T> constexpr T MAX = std::numeric_limits<T>::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;
|
||||
string s;
|
||||
cin >> n >> s;
|
||||
|
||||
u64 ans = MAX<u64>;
|
||||
|
||||
auto f = [&](string &t) {
|
||||
vector<u64> pos;
|
||||
for (u64 i = 0; i < n; i++)
|
||||
if (t[i] == 'a')
|
||||
pos.push_back(i);
|
||||
u64 m = pos.size();
|
||||
|
||||
vector<u64> pref(m + 1), suff(m + 1);
|
||||
for (u64 i = 0; i < m; i++)
|
||||
pref[i + 1] = pref[i] + pos[i] - i;
|
||||
for (u64 i = m; i--;)
|
||||
suff[i] = suff[i + 1] + (n - (m - i)) - pos[i];
|
||||
|
||||
for (u64 i = 0; i <= m; i++)
|
||||
ans = min<u64>(ans, pref[i] + suff[i]);
|
||||
};
|
||||
|
||||
f(s);
|
||||
transform(s.begin(), s.end(), s.begin(),
|
||||
[](char c) { return c ^ 'a' ^ 'b'; });
|
||||
f(s);
|
||||
|
||||
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;
|
||||
}
|
||||
// }}}
|
||||
11
codeforces/1054/io/2149a.cpin
Normal file
11
codeforces/1054/io/2149a.cpin
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
5
|
||||
4
|
||||
abab
|
||||
6
|
||||
bababa
|
||||
7
|
||||
abababa
|
||||
2
|
||||
ab
|
||||
1
|
||||
b
|
||||
11
codeforces/1054/io/d.1.cpin
Normal file
11
codeforces/1054/io/d.1.cpin
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
5
|
||||
4
|
||||
abab
|
||||
6
|
||||
bababa
|
||||
7
|
||||
abababa
|
||||
2
|
||||
ab
|
||||
1
|
||||
b
|
||||
Loading…
Add table
Add a link
Reference in a new issue