2924 - Java vs C++

Time Limit: 3s Memory Limit: 128MB

Submissions: 147 Solved: 23
Description

Java와 C++에는 여러가지 차이점이 존재하는데, 이 중 하나가 변수작명법이다. 특히 여러 단어로 이루어진 변수의 경우 그 차이점이 명확하게 존재한다. (이 문제에서는 단어는 알파벳으로 이루어진 길이가 1 이상인 문자열을 말한다.)

 

Java에서는 다음과 같은 규칙을 따른다.

첫 단어는 소문자로 시작하고 그 다음 단어들은 대문자로 시작한다.

예) javaIdentifier, longAndMnemonicIdentifier, name, nEERC

 

C++에서는 변수명에 오직 소문자만 사용한다.

이 때, 단어의 구분은 '_'를 이용한다.

예) c_identifier, long_and_mnemonic_identifier, name (이 경우는 Java와 C++ 모두 사용할 수 있다), n_e_e_r_c

 

여러분이 Java 사용자와 C++ 사용자 모두를 만족시키기 위한 번역기를 만든다고하자.

물론 변수도 이에 맞춰서 변해야 할 것이다.(그렇지 않으면 아무도 사지 않을 것이다.)

우선 완성해야 할 부분은 주어진 변수가 C++형인지 Java형인지 판별하여 올바르게 변환하는 것이다. 완성해보자.

이상한 변수명인 경우에는 에러메시지를 출력한다.

변수에는 그 나름의 의미가 담겨져있을테니 글자의 순서라던가 등은 변환되어선 안된다. 변환은 대소문자변환과 '_'의 유무만 변하여야 한다.

Input

입력파일은 한 줄에 한 변수씩 여러 테스트케이스가 존재한다.

영어 알파벳과 '_'로 이루어져 있으며 길이가 100을 넘지 않는다

Output

각 테스트케이스에 대해 Java 변수명일 경우 C++형으로, C++ 변수명일 경우 Java형으로 출력한다.

해당하는 것이 없다면 "Error!"를 출력한다.

Sample Input
long_and_mnemonic_identifier 
anotherExample 
i 
bad_Style
Sample Output
longAndMnemonicIdentifier
another_example
i
Error!
Source

Regionals 2006, Europe - Northeastern