UnKoder #07 A AB Warp
問題
方針
思考停止 BFS.
実装
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
string s;
cin >> s;
int n = s.size();
queue<int> q;
q.push(0);
int d[60] = {};
rep(i,60) d[i] = 10000;
d[0] = 0;
int ans = -1;
while(q.size()){
int p = q.front(); q.pop();
if(p==n-1){
ans = d[p];
break;
}
rep(i,n){
if(s[i]==s[p] || i==p+1 || i==p-1){
if(d[i] > d[p]+1){
d[i] = d[p]+1;
q.push(i);
}
}
}
}
cout << ans << endl;
}