Апологети Java та C++ можуть годинами сперечатися, доводячи один одному, що їхня мова програмування є найкращою. Прихильники Java стверджують, що їхні програми зрозуміліші та менш схильні до помилок, тоді як прихильники C++ сміються з їхньої нездатності створити масив узагальнень або кажуть, що їхні програми повільні та мають довгий вихідний код.
Ще одне питання, щодо якого люди Java та C++ ніколи не можуть дійти згоди, — це іменування ідентифікаторів. У Java багатослівний ідентифікатор створюється так: перше слово пишеться з маленької літери, а наступні починаються з великої літери, роздільники не використовуються. Усі інші літери маленькі. Прикладами ідентифікаторів Java є javaIdentifier, longAndMnemonicIdentifier, name, nEERC.
На відміну від них, люди C++ використовують лише маленькі літери в своїх ідентифікаторах. Для розділення слів вони використовують символ підкреслення '_'. Прикладами ідентифікаторів C++ є c_identifier, long_and_mnemonic_identifier, name (ви бачите, що коли є лише одне слово, люди Java та C++ погоджуються), n_e_e_r_c.
Ви пишете перекладач, який призначений для перекладу програм C++ на Java і навпаки. Звісно, ідентифікатори в перекладеній програмі повинні бути відформатовані відповідно до правил своєї мови — інакше людям ніколи не сподобається ваш перекладач.
Перше, що ви хотіли б написати, — це процедуру перекладу ідентифікаторів. Дано ідентифікатор, потрібно визначити, чи є він ідентифікатором Java або C++, і перекласти його на інший діалект. Якщо він не є жодним з них, тоді ваша процедура повинна повідомити про помилку. Переклад має зберігати порядок слів і повинен лише змінювати регістр літер та/або додавати/видаляти підкреслення.
Вхід складається з одного рядка, що містить ідентифікатор. Він складається з літер англійського алфавіту та підкреслень. Його довжина не перевищує .
Якщо вхідний ідентифікатор є ідентифікатором Java, виведіть його версію для C++. Якщо це ідентифікатор C++, виведіть його версію для Java. Якщо це жоден з них, виведіть "Error!" замість цього.
Приклад 1