Miniröj | 프로그래밍의 벗 PivotOJ
PivotOJ

Miniröj

시간 제한: 3000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2013 — kattBOJ 26925
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

De flesta som suttit vid en dator utan internet-uppkoppling har antagligen testat på att spela Minröj. Minröj spelas på en rektangulär spelplan med RxC stycken celler vars innehåll från början är okänt. Spelaren kan sedan klicka på cellerna för att se dess innehåll. I ett antal celler har minor placerats ut och klickar spelaren på en sådan så är spelet över. I varje cell utan mina finns istället en siffra som talar om hur många minor det finns i cellerna runtom, dvs i de celler med vilka den delar en sida eller ett hörn. Tanken är att dessa siffror ska användas för att lista ut var minorna finns och på så sätt undvika dem.

Rudolf har bestämt sig för att bli en professionell Minröj-spelare. Han har dock inte spelat det förut och tänker därför testa en lättare version, Miniröj, som spelas på ett spelbräde av storlek 2xN. Han har dessutom laddat ner MinesweeperHaXX3000, som genom att utnyttja en mystisk bugg kan avslöja innehållet i alla celler på den nedre halvan av spelplanen. Rudolf känner sig dock inte helt säker ändå, och ber dig att skriva ett program som givet den informationen han fått kan avgöra vilka celler som är säkra att klicka på.

입력

På den första och enda raden finns en sträng av längd NN. Denna beskriver spelplanens nedre halva, och varje tecken är antingen ett 'X', vilket innebär en mina, eller ett heltal dd, 0d50 \leq d \leq 5, som beskriver att det finns dd minor i närheten av rutan.

출력

Om det inte finns någon giltig spelplan som är kompatibel med indata ska programmet skriva ut 'fel' på en rad (notera små bokstäver). Skriv annars ut en sträng med NN tecken - 'S', 'O' eller 'X' - beskrivande cellerna på den övre halvan av spelplanen. En cell beskrivs med 'S' om cellen inte kan innehålla en mina, 'X' om cellen helt säkert innehåller en mina och 'O' (ett stort 'o') om cellen skulle kunna innehålla en mina men inte behöver göra det. Det sista alternativet innebär att det finns minst en giltig spelplan där cellen innehåller en mina och minst en giltig spelplan där cellen inte gör det, se bilderna för närmare förklaring.

힌트

[이미지 1]

En illustration av en möjlig lösning för det första exempeltestfallet.

[이미지 2]

En illustration av den andra möjliga lösningen för det första exempeltestfallet.

예제

예제 1

입력
11111
출력
OOSOO

예제 2

입력
121
출력
XSX

예제 3

입력
2211
출력
fel

예제 4

입력
2X4XX32
출력
OOOOSXX
코드를 제출하려면 로그인하세요.