Submission #1369507


Source Code Expand

#include<iostream>
#include<algorithm>
#include<string>

using namespace std;

#define sz(x) (int)(x.size())
#define rep(i, a, b) for(int i=a;i<b;++i)
/////////////////

void solve(){
	string s;
	cin >> s;
	int cnt[2];
	cnt[0] = cnt[1] = 0;
	int cur = 0;
	cnt[0] = 1;
	rep(i, 1, sz(s)){
		if(s[i] != s[i-1]){
			cur ^= 1;
			++cnt[cur];
		}
	}
	if(cnt[0] > cnt[1]) swap(cnt[0], cnt[1]);
	if(cnt[0] == 0){
		cout << 0 << endl;
		return;
	}
	if(cnt[1] == 1){
		cout << 1 << endl;
		return;
	}
	cout << cnt[0] + cnt[1] - 1 << endl;
}

int main(){
#ifdef _DEBUG
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
#endif

	solve();

	return 0;
}

Submission Info

Submission Time
Task C - 1D Reversi
User Filyan
Language C++14 (GCC 5.4.1)
Score 300
Code Size 701 Byte
Status AC
Exec Time 5 ms
Memory 512 KB

Judge Result

Set Name sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 15
Set Name Test Cases
sample sample_01.txt, sample_02.txt, sample_03.txt
All alternate_01.txt, alternate_02.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, same_01.txt, same_02.txt, sample_01.txt, sample_02.txt, sample_03.txt, small_01.txt, small_02.txt, small_03.txt
Case Name Status Exec Time Memory
alternate_01.txt AC 5 ms 512 KB
alternate_02.txt AC 5 ms 512 KB
random_01.txt AC 5 ms 512 KB
random_02.txt AC 5 ms 512 KB
random_03.txt AC 5 ms 512 KB
random_04.txt AC 5 ms 512 KB
random_05.txt AC 5 ms 512 KB
same_01.txt AC 4 ms 512 KB
same_02.txt AC 4 ms 512 KB
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
small_01.txt AC 1 ms 256 KB
small_02.txt AC 1 ms 256 KB
small_03.txt AC 1 ms 256 KB