시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB52414910829.917%

문제

창영이는 요즘 춤을 배우고 있다. 창영이는 다음과 같은 규칙을 따라서 춤을 추어야 한다.

  1. dip은 jiggle을 춘 다음이나 다다음, 또는 twirl을 추기 전에 출 수 있다. 예를 들면 다음과 같다.
    • ...jiggle dip...
    • ...jiggle stomp dip...
    • ...dip twirl...
  2. 모든 춤은 clap stomp clap으로 끝나야 한다.
  3. 만약 twirl을 췄다면, hop도 춰야한다.
  4. jiggle로 춤을 시작할 수 없다.
  5. 반드시 dip을 춰야 한다.

창영이가 춘 춤이 주어졌을 때, 위의 규칙을 지켰는지 아닌지를 알아내는 프로그램을 작성하시오.

입력

입력은 여러개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 창영이가 춘 춤이 주어진다. 각 춤은 1000스텝을 넘지 않는다. 각 스텝 알파벳 소문자로 이루어져 있고, 100글자를 넘지 않는다.

출력

창영이의 춤이 규칙을 모두 지켰다면, "form ok: "를 출력하고 입력으로 주어진 춤을 출력한다.

창영이의 춤이 규칙을 1개만 어겼다면, "form error K: "를 출력하고 입력으로 주어진 춤을 출력한다. 여기서 K는 창영이가 어긴 규칙의 번호이다.

창영이의 춤이 규칙을 여러개 어겼다면, "form errors K(1), K(2), ..., K(N-1) and K(N): "을 출력하고 입력으로 주어진 춤을 출력한다. K(i)는 창영이가 어긴 규칙의 번호이고, 오름차순이다.

창영이가 1번 규칙을 어겼다면, 입력으로 주어진 춤을 출력할 때, 규칙에 어긋난 dip을 대문자로 출력한다.

예제 입력 1

dip twirl hop jiggle hop hop clap stomp clap
dip hop jiggle hop hop clap stomp clap
dip twirl hop jiggle hop hop clap clap stomp
jiggle dip twirl hop jiggle hop hop clap stomp clap
jiggle dip
jiggle
dip twirl hop dip jiggle hop dip hop clap stomp clap

예제 출력 1

form ok: dip twirl hop jiggle hop hop clap stomp clap
form error 1: DIP hop jiggle hop hop clap stomp clap
form error 2: dip twirl hop jiggle hop hop clap clap stomp
form error 4: jiggle dip twirl hop jiggle hop hop clap stomp clap
form errors 2 and 4: jiggle dip
form errors 2, 4 and 5: jiggle
form error 1: dip twirl hop DIP jiggle hop dip hop clap stomp clap
W3sicHJvYmxlbV9pZCI6IjQ4MzYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWNkYTQiLCJkZXNjcmlwdGlvbiI6IjxwPlx1Y2MzZFx1YzYwMVx1Yzc3NFx1YjI5NCBcdWM2OTRcdWM5OTggXHVjZGE0XHVjNzQ0IFx1YmMzMFx1YzZiMFx1YWNlMCBcdWM3ODhcdWIyZTQuIFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YjI5NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWI1MzBcdWI3N2NcdWMxMWMgXHVjZGE0XHVjNzQ0IFx1Y2Q5NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+ZGlwXHVjNzQwIGppZ2dsZVx1Yzc0NCBcdWNkOTggXHViMmU0XHVjNzRjXHVjNzc0XHViMDk4IFx1YjJlNFx1YjJlNFx1Yzc0YywgXHViNjEwXHViMjk0IHR3aXJsXHVjNzQ0IFx1Y2Q5NFx1YWUzMCBcdWM4MDRcdWM1ZDAgXHVjZDljIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWJhNzQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC5cclxuXHQ8dWw+XHJcblx0XHQ8bGk+Li4uamlnZ2xlIGRpcC4uLjxcL2xpPlxyXG5cdFx0PGxpPi4uLmppZ2dsZSBzdG9tcCBkaXAuLi48XC9saT5cclxuXHRcdDxsaT4uLi5kaXAgdHdpcmwuLi48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+XHViYWE4XHViNGUwIFx1Y2RhNFx1Yzc0MCBjbGFwIHN0b21wIGNsYXBcdWM3M2NcdWI4NWMgXHViMDVkXHViMDk4XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViOWNjXHVjNTdkIHR3aXJsXHVjNzQ0IFx1Y2RjNFx1YjJlNFx1YmE3NCwgaG9wXHViM2M0IFx1Y2RiMFx1YzU3Y1x1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+amlnZ2xlXHViODVjIFx1Y2RhNFx1Yzc0NCBcdWMyZGNcdWM3OTFcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViYzE4XHViNGRjXHVjMmRjIGRpcFx1Yzc0NCBcdWNkYjBcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWNkOTggXHVjZGE0XHVjNzc0IFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1YzcwNFx1Yzc1OCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjOWMwXHVjZjMwXHViMjk0XHVjOWMwIFx1YzU0NFx1YjJjY1x1YzljMFx1Yjk3YyBcdWM1NGNcdWM1NDRcdWIwYjRcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc0MCBcdWM1ZWNcdWI3ZWNcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWQ1NWMgXHVjOTA0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWNkOTggXHVjZGE0XHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhYzAxIFx1Y2RhNFx1Yzc0MCAxMDAwXHVjMmE0XHVkMTVkXHVjNzQ0IFx1YjExOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIFx1YWMwMSBcdWMyYTRcdWQxNWQgXHVjNTRjXHVkMzBjXHViY2IzIFx1YzE4Y1x1YmIzOFx1Yzc5MFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVhY2UwLCAxMDBcdWFlMDBcdWM3OTBcdWI5N2MgXHViMTE4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjM2RcdWM2MDFcdWM3NzRcdWM3NTggXHVjZGE0XHVjNzc0IFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWJhYThcdWI0NTAgXHVjOWMwXHVjZjMwXHViMmU0XHViYTc0LCAmcXVvdDtmb3JtIG9rOiAmcXVvdDtcdWI5N2MgXHVjZDljXHViODI1XHVkNTU4XHVhY2UwIFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjZGE0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjYzNkXHVjNjAxXHVjNzc0XHVjNzU4IFx1Y2RhNFx1Yzc3NCBcdWFkZGNcdWNlNTlcdWM3NDQgMVx1YWMxY1x1YjljYyBcdWM1YjRcdWFjYmNcdWIyZTRcdWJhNzQsICZxdW90O2Zvcm0gZXJyb3IgSzogJnF1b3Q7XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWNlMCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0IFx1Y2RhNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YzVlY1x1YWUzMFx1YzExYyBLXHViMjk0IFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWM1YjRcdWFlMzQgXHVhZGRjXHVjZTU5XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjYzNkXHVjNjAxXHVjNzc0XHVjNzU4IFx1Y2RhNFx1Yzc3NCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjNWVjXHViN2VjXHVhYzFjIFx1YzViNFx1YWNiY1x1YjJlNFx1YmE3NCwgJnF1b3Q7Zm9ybSBlcnJvcnMgSygxKSwgSygyKSwgLi4uLCBLKE4tMSkgYW5kIEsoTik6ICZxdW90O1x1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjZTAgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWNkYTRcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBLKGkpXHViMjk0IFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWM1YjRcdWFlMzQgXHVhZGRjXHVjZTU5XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yzc3NFx1YWNlMCwgXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNjM2RcdWM2MDFcdWM3NzRcdWFjMDAgMVx1YmM4OCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjNWI0XHVhY2JjXHViMmU0XHViYTc0LCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0IFx1Y2RhNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NjAgXHViNTRjLCBcdWFkZGNcdWNlNTlcdWM1ZDAgXHVjNWI0XHVhZTBiXHViMDljIGRpcFx1Yzc0NCBcdWIzMDBcdWJiMzhcdWM3OTBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjQ4MzYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJEYW5jZSIsImRlc2NyaXB0aW9uIjoiPHA+Rm9yIGEgZGFuY2UgdG8gYmUgcHJvcGVyIGluIHRoZSBBbHRlcmVkIEN1bHR1cmUgb2YgTWFjaGluZW1hLCBpdCBtdXN0IGFiaWRlIGJ5IHRoZSBmb2xsb3dpbmcgcnVsZXM6Jm5ic3A7PFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+QSBkaXAgY2FuIG9ubHkgYXBwZWFyIDEgb3IgMiBzdGVwcyBhZnRlciBhIGppZ2dsZSwgb3IgYmVmb3JlIGEgdHdpcmwsIGFzIGluOiZuYnNwO1xyXG5cdDx1bD5cclxuXHRcdDxsaT4uLi5qaWdnbGUgZGlwLi4uJm5ic3A7PFwvbGk+XHJcblx0XHQ8bGk+Li4uamlnZ2xlIHN0b21wIGRpcC4uLiZuYnNwOzxcL2xpPlxyXG5cdFx0PGxpPi4uLmRpcCB0d2lybC4uLiZuYnNwOzxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT5BbGwgZGFuY2VzIGVuZCB3aXRoIGEgY2xhcCBzdG9tcCBjbGFwLiZuYnNwOzxcL2xpPlxyXG5cdDxsaT5JZiBhIGRhbmNlIGNvbnRhaW5zIGEgdHdpcmwsIGl0IG11c3QgaGF2ZSBhIGhvcC4mbmJzcDs8XC9saT5cclxuXHQ8bGk+Tm8gZGFuY2UgY2FuIHN0YXJ0IHdpdGggYSBqaWdnbGUuJm5ic3A7PFwvbGk+XHJcblx0PGxpPkFsbCBkYW5jZXMgbXVzdCBoYXZlIGEgZGlwLiZuYnNwOzxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPkFzIGluc3RydWN0b3IgYXQgYSBkYW5jZSBjb21wb3NpdGlvbiBzY2hvb2wsIHlvdSBtdXN0IGdyYWRlIG1hbnkgZnJlc2htYW4gYXR0ZW1wdHMgYXQgY29tcG9zaW5nIGRhbmNlcy4gWW91IGRlY2lkZSB0byBtYWtlIGFuIGF1dG9tYXRpYyBncmFkZXIgdGhhdCBjYW4gY2hlY2sgYWdhaW5zdCB0aGVzZSBydWxlcy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBjb25zaXN0cyBvZiBhIG51bWJlciBvZiBkYW5jZXMsIG9uZSBwZXIgbGluZS4gRWFjaCBkYW5jZSBoYXMgYSBtYXhpbXVtIG9mIDEwMDAgc3RlcHMuIEVhY2ggc3RlcCBpcyBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgc3BhY2UsIGFuZCBhbGwgc3RlcHMgYXJlIGxvd2VyY2FzZSBhbHBoYWJldGljIHdvcmRzIGF0IG1vc3QgMTAwIGxldHRlcnMgbG9uZy48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5JZiBhIGRhbmNlIGluIHRoZSBpbnB1dCBoYXMgbm8gbWlzdGFrZXMsIHRoZW4gdGhlIG91dHB1dCBzaG91bGQgY29udGFpbiB0aGUgd29yZHMgJnF1b3Q7Zm9ybSBvazogJnF1b3Q7IGZvbGxvd2VkIGJ5IHRoZSBvcmlnaW5hbCBjb21wb3NpdGlvbi48XC9wPlxyXG5cclxuPHA+SWYgYSBkYW5jZSBoYXMgYSBzaW5nbGUgdHlwZSBvZiBmb3JtIGVycm9yLCB0aGVuIHRoZSBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gdGhlIHdvcmRzICZxdW90O2Zvcm0gZXJyb3IgSzogJnF1b3Q7IHdoZXJlIEsgaXMgdGhlIHJ1bGUgd2hpY2ggZmFpbGVkLCBmb2xsb3dlZCBieSB0aGUgY29tcG9zaXRpb24uPFwvcD5cclxuXHJcbjxwPklmIGEgZGFuY2UgaGFzIG11bHRpcGxlIHR5cGVzIG9mIGZvcm0gZXJyb3JzLCB0aGVuIHRoZSBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gdGhlIGVycm9ycyBhcyBhIGNvbW1hIHNlcGFyYXRlZCBjbGF1c2UsIGFzIGluICZxdW90O2Zvcm0gZXJyb3JzIEsoMSksIEsoMiksIC4uLiwgSyhOLTEpIGFuZCBLKE4pOiAmcXVvdDsgd2hlcmUgdGhlIGZvcm0gZXJyb3JzIGFyZSBpbiBpbmNyZWFzaW5nIG9yZGVyLCBmb2xsb3dlZCBieSB0aGUgY29tcG9zaXRpb24uPFwvcD5cclxuXHJcbjxwPklmIGEgZGFuY2UgaGFzIGZvcm0gZXJyb3IgMSwgZXZlcnkgZGlwIGluIHRoZSBkYW5jZSB0aGF0IHZpb2xhdGVzIHJ1bGUgMSBzaG91bGQgYmUgcHJpbnRlZCBpbiB1cHBlciBjYXNlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=