Table of Contents
A. Prefixes
題目鏈接:https://codeforces.com/contest/1216/problem/A
題目大意:
(input)輸入n,表示下一行輸入的字符串的長度,輸入str
通過最少的操作數來達到每偶數段(1~2*n)a的個數和b的個數是相等
解題思路:
簡單的模擬,每次維護長度爲2的區間,如果在這區間中,兩個相同那麼必定要進行一次操作cnt++,改s[i]或s[i+1]無區別,故所有偶數區間都能滿足
#include <bits/stdc++.h>
#define REP(i, a, b) for(int i = a; i < b; i++)
#define REP_(i, a, b) for(int i = a; i <= b; i++)
#define sl(n) scanf("%lld", &n);
#define si(n) scanf("%d", &n);
#define RepAll(a) for(auto x: a)
#define cout(ans) cout << ans << endl;
typedef long long ll;
using namespace std;
int main(){
ll n, cnt = 0;
sl(n);
string s;
cin >> s;
for(int i = 0; i < s.size() - 1; i+=2){
//每兩位每兩位的檢查
if(s[i] == s[i + 1]){
cnt++;
s[i + 1] == 'a' ? s[i+1] = 'b' : s[i+1] = 'a';
}
}
cout << cnt << '\n' << s << endl;
}