ABC421 C WAx2 求调/Hack
  • 板块学术版
  • 楼主Terminal_P
  • 当前回复6
  • 已保存回复6
  • 发布时间2025/8/31 10:44
  • 上次更新2025/8/31 19:46:55
查看原帖
ABC421 C WAx2 求调/Hack
1340182
Terminal_P楼主2025/8/31 10:44

思路:分别计算第 iiAB2i12i - 1 号位置的距离。

我认为这个方法没啥问题/kel

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
const int inf = 2e9;
void solve();
signed main() {
  std::cin.tie(nullptr)->sync_with_stdio(false);
  int _ = 1;
  // std::cin >> _;
  while (_--) solve();
  return 0;
}
const int N = 1e6 + 5;
int n;
char s[N];
int ans = inf, cnt = 0;
std::vector<int> ap, bp;
void solve() {
  std::cin >> n;
  n <<= 1;
  for (int i = 1; i <= n; i++) std::cin >> s[i];
  for (int i = 1; i <= n; i++)
    (s[i] == 'A') ? ap.emplace_back(i) : bp.emplace_back(i);
  for (int i = 1; i <= (int)ap.size(); i++) cnt += abs(ap[i - 1] - ((i * 2) - 1));
  ans = std::min(ans, cnt);
  cnt = 0;
  for (int i = 1; i <= (int)bp.size(); i++) cnt += abs(bp[i - 1] - ((i * 2) - 1));
  ans = std::min(ans, cnt);
  std::cout << ans << endl;
  return void();
}

2025/8/31 10:44
加载中...