문제

링크

풀이

#include <iostream>
#include <string>
#define MOD 1000000007
using namespace std;
 
long long solve(void) {
  string s; cin >> s;
  if (s.length() == 1) return 1;
 
  long long ans = (1 + (s[0] != s[1])) * (1 + (s.back() != s[s.length()-2]));
  for (int i=1; i<s.size()-1; i++) {
    ans = (ans * (1 + (s[i-1] != s[i]) + (s[i+1] != s[i] && s[i+1] != s[i-1]))) % MOD;
  }
  return ans;
}
 
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
 
  int t; cin >> t;
  for (int i=1; i<=t; i++) cout << "Case #" << i << ": " << solve() << "\n";
  return 0;
}