[B] Lucky Number 2
Codeforces Round #104 (Div. 1)
먼저 결과 문자열 s를 다 만들었다고 해보자.
s에서 4나 7이 반복되는 구간을 다 줄여버리고 나면
문자열은 474747... 혹은 747474... 같은 형태가 될 것이다.
여기서 알 수 있는 사실은 |a3 - a4| <= 1 이어야 한다는 것이다.
1) a3 == a4 인 경우
4747...474 이거나 7474...747 같은 형태가 될 것이다.
2) a3 + 1 == a4 인 경우
7474...74 같은 형태가 될 것이다.
3) a3 == a4 + 1 인 경우
4747...47 같은 형태가 될 것이다.
위 경우를 따져서 뼈대 문자열을 먼저 만들고,
4가 제일 처음 등장하는 위치에 나머지 4들을 끼워넣고
7이 제일 마지막으로 등장하는 위치에 나머지 7들을 끼워넣으면 된다.