시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
선영이는 C, C++, Java와는 다른, 아주 세련된 프로그래밍 언어를 만들고 그 이름을 i#으로 지었다.
i#은 기본 자료형과 함께 배열([]), 참조(&), 포인터(*)를 제공한다. 배열, 참조, 포인터는 순서에 상관없이 자유롭게 섞어 쓸 수 있다. 예를 들어 int의 참조의 참조의 배열의 포인터도 올바른 타입이며, 이는 int&&[]*로 적는다.
i#에서는 여러 변수를 한 줄에 함께 선언할 수 있다. 먼저 공통된 자료형을 쓴 뒤, 이어서 각 변수의 이름과 그 변수에만 추가로 붙는 자료형 기호를 쓰면 된다. 예를 들어
int& a*[]&, b, c*;
에서 각 변수의 타입은 다음과 같다.
a의 타입은 int&&[]*b의 타입은 int&c의 타입은 int&*변수 이름의 오른쪽에 붙은 자료형 기호들은, 기호 단위로 순서를 뒤집어 이름의 왼쪽(공통 자료형 뒤)으로 옮길 수 있다. 여기서 []는 하나의 기호로 취급한다. 따라서 int*& a는 int a&*와 같다.
이렇게 한 줄에 여러 변수를 선언하면 알아보기 어렵기 때문에, 앞으로는 한 줄에 하나씩 선언하려고 한다.
i#의 변수 선언문이 하나 주어졌을 때, 각 변수의 오른쪽에 있는 자료형 기호를 모두 규칙에 따라 왼쪽으로 옮기고, 한 줄에 한 변수씩 선언하는 프로그램을 작성하시오.
첫째 줄에 i#의 변수 선언문이 하나 주어진다. 이 선언문에는 여러 개의 변수가 포함될 수 있다.
선언문은 다음 순서로 이루어진다.
, )으로 구분되며, 전체는 ;로 끝난다.기본 자료형 이름과 변수 이름은 서로 같지 않으며, 알파벳 소문자와 대문자로만 이루어진다. 자료형 기호는 &, *, []뿐이다. 입력 줄의 길이는 120글자를 넘지 않는다.
입력으로 주어진 변수 선언문을 문제의 규칙에 따라 변형하여, 한 줄에 한 변수씩 출력한다. 각 줄에는 그 변수의 완성된 자료형과 변수 이름을 출력하고, 자료형과 변수 이름 사이에는 공백을 하나 둔다. 각 줄은 ;로 끝난다. 변수는 입력에 선언된 순서대로 출력한다.