Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- int main() {
- int n;
- cin >> n;
- string s;
- vector<int> idx;
- cin >> s;
- if (n == 1) {
- cout << 1 << endl;
- return 0;
- }
- int len = 1, maxlen = 0;
- bool change = false;
- for(int i=1;i<n;i++) {
- if (s[i] == s[i-1]) {
- len++;
- if(len>maxlen) maxlen = len;
- if (len == 2) {
- idx.push_back(i);
- }
- } else {
- change = true;
- len = 1;
- }
- }
- if(idx.size() >= 2)
- for(int i=idx[0];i<idx[1];i++)
- s[i] = 1 - (s[i] - '0') + '0';
- else if(idx.size() == 1)
- if (maxlen == 2)
- for(int i=idx[0];i<n;i++)
- s[i] = 1 - (s[i] - '0') + '0';
- else
- s[idx[0]] = 1 - (s[idx[0]] - '0') + '0';
- else if (!change) {
- s[1] = 1 - (s[1] - '0') + '0';
- }
- else
- for(int i=0;i<n;i++)
- s[i] = 1 - (s[i] - '0') + '0';
- // cout << s << endl;
- int ans = 1;
- for(int i=1;i<n;i++) {
- if (s[i] != s[i-1]) {
- ans++;
- }
- }
- cout << ans << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement