Codeforces 394(#231 Div1) A. Counting Sticks

問題

|||+||=|||||のようなマッチ棒を使った式が文字列で与えられる。
A+B=C(A, B, C > 0)のときに正しい式である。


誤っているかもしれない式が与えられるので、棒を一本動かして正しい式に出来るならその式を、そうでないならImpossibleを出力せよ。
+, =の棒は動かしてはならない。

制約条件

A, B, C≦100とか

方針

a[] = {A, B, C}として、a[i]からa[j]に一本動かしてみるというのを全通り試せばいい。

ソースコード

int main(){
	string s;
	cin >> s;
	rep(i, s.size()) if(s[i] == '+' || s[i] == '=') s[i] = ' ';
	stringstream ss(s);
	
	int a[3];
	rep(i, 3) ss >> s, a[i] = s.size();
	
	rep(i, 3) rep(j, 3){
		a[i]--; a[j]++;
		if(a[0] + a[1] == a[2] && a[0] > 0 && a[1] > 0 && a[2] > 0){
			cout << string(a[0], '|') <<
			"+" << string(a[1], '|') <<
			"=" << string(a[2], '|') << endl;
			return 0;
		}
		a[i]++; a[j]--;
	}
	cout << "Impossible" << endl;
	return 0;
}