시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 109 | 62 | 47 | 71.212% |
스타일리시는 프로그래밍 언어이다.
스타일리시의 문법은 알파벳으로 이루어진 이름과 세 가지 유형의 괄호, 마침표 ('.'), 새 줄로 이루어져 있다.
괄호는 소괄호 ('('와 ')'), 중괄호 ('{'와 '}'), 대괄호 ('['와 ']')로 총 세 가지이며, 항상 쌍을 이루도록 사용해야 한다. 또, 중첩될 수도 있다. 다른 프로그래밍 언어와 다르게, 스타일리시는 공백 대신에 마침표('.')를 사용한다. 다음은 스타일리시 프로그램의 예이다.
(Welcome.to .........Stylish) {Stylish.is .....[.(a.programming.language.fun.to.learn) .......] .....Maybe.[ .......It.will.be.an.official.ICPC.language .......] .....}
위의 예제에서 볼 수 있듯이, 스타일리시 프로그램은 마침표를 사용해서 인덴트를 한다. 각 줄의 인덴트의 양이란, 줄의 앞에 있는 연속되는 마침표의 개수이다.
잘 인덴트된 스타일리시 프로그램의 인덴트 양은 인덴트 스타일 (R,C,S)를 이용해서 결정한다. (1 ≤ R,C,S ≤ 20) 여기서 R은 소괄호, C는 중괄호, S는 대괄호에 해당하는 인덴트의 양이다.
잘 인덴트된 프로그램의 각 줄의 인덴트의 양은 R(ro - rc) + C(co - cc) + S(so - sc)로 결정할 수 있다. 여기서 ro, co, so은 이전 줄까지 나온 여는 소괄호, 중괄호, 대괄호의 개수이고, rc, cc, sc는 닫는 소괄호, 중괄호, 대괄호의 개수이다. 잘 인덴트된 스타일리시 프로그램의 첫 줄에는 항상 인덴트가 없다.
위에 나와있는 예제의 인덴트 스타일은 (R,C,S) = (9,5,2) 이다. 첫째 줄에는 소괄호만 하나 있다. 따라서, 두 번째 줄의 인덴트의 양은 9(1 - 0) + 5(0 - 0) + 2(0 - 0) = 9이다. 처음 네 줄에는 여는 소괄호가 두 개, 여는 중괄호와 대괄호가 각각 한 개, 닫는 소괄호가 두 개 있다. 따라서, 다섯 번째 줄의 인덴트의 양은 9(2 - 2) + 5(1 - 0) + 2(1 - 0) = 7이다.
잘 인덴트된 스타일리시 프로그램 P와 그렇지 않은 프로그램 Q가 주어졌을 때, P의 인덴트 스타일을 구해 Q에 적용하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 p와 q가 주어진다. (1 ≤ p, q ≤ 10)
다음 p개 줄에는 스타일리시 마스터가 작성한 잘 인덴트된 프로그램 P가 주어지며, 그 다음 q개 줄에는 다른 프로그램 Q가 주어진다. 두 프로그램의 각 줄은 적어도 1글자 이상이며, 80글자를 넘지 않는다. Q의 모든 줄은 마침표로 시작하지 않는다.
마지막 줄에는 0이 두 개 주어진다.
각 테스트 케이스에 대해서, P의 인덴트 스타일을 구해 Q에 적용한 뒤, 각 줄의 인덴트의 양을 공백으로 구분해 출력한다. 만약, 인덴트의 양을 유일하게 결정할 수 없는 줄이 있다면, 그 줄은 -1을 출력한다.
5 4 (Follow.my.style .........starting.from.round.brackets) {then.curly.brackets .....[.and.finally .......square.brackets.]} (Thank.you {for.showing.me [all the.secrets]}) 4 2 (This.time.I.will.show.you .........(how.to.use.round.brackets) .........[but.not.about.square.brackets] .........{nor.curly.brackets}) (I.learned how.to.use.round.brackets) 4 2 (This.time.I.will.show.you .........(how.to.use.round.brackets) .........[but.not.about.square.brackets] .........{nor.curly.brackets}) [I.have.not.learned how.to.use.square.brackets] 2 2 (Be.smart.and.let.fear.of ..(closed.brackets).go) (A.pair.of.round.brackets.enclosing [A.line.enclosed.in.square.brackets]) 1 2 Telling.you.nothing.but.you.can.make.it [One.liner.(is).(never.indented)] [One.liner.(is).(never.indented)] 2 4 ([{Learn.from.my.KungFu ...}]) (( {{ [[ ]]}})) 1 2 Do.not.waste.your.time.trying.to.read.from.emptiness ( ) 2 3 ({Quite.interesting.art.of.ambiguity ....}) { ( )} 2 4 ({[ ............................................................]}) ( { [ ]}) 0 0
0 9 14 16 0 9 0 -1 0 2 0 0 0 2 4 6 0 -1 0 -1 4 0 20 40 60
ICPC > Regionals > Asia Pacific > Japan > Asia Regional Contest 2012 in Tokyo B번