P145PROE spoj PTIT – ROUND 5E – Trang trí

Nguồn đề bài: http://www.spoj.com/PTIT/problems/P145PROE/

1. Đề bài P145PROE spoj

Tí và Tèo đang cùng nhau vẽ tranh. 2 bạn cần trang trí các họa tiết để làm nổi bật dòng chữ trung tâm. Cách trang trí cho mỗi chữ cái của Tí như sau:

..#..

.#.#.

#.X.#

.#.#.

..#..

Trong đó X là chữ cái đang trang trí. Còn cách trang trí của Tèo như sau:

..*..

.*.*.

*.X.*

.*.*.

..*..

Hai bạn đang tranh luận xem phân chia trang trí như thế nào. Cuối cùng, Tí là người chiến thắng, và quyết định cứ trang trí 2 chữ cái theo cách của Tí xong thì Tèo mới được trang trí cho chữ cái tiếp theo. Các khung trang trí chữ cái được nối tiếp nhau, chi tiết nào mà khung trang trí của Tí và Tèo giao nhau thì Tèo là người được ưu tiên trong trường hợp này.

Input

Một dòng duy nhất chứa xâu có độ dài <= 15 là nội dung trung tâm của bức tranh.

Output

In ra 5 dòng là bức tranh sau khi đã được 2 bạn trang trí xong.

Example

Test 1:

Input:

A

Output:

..#..
.#.#.
#.A.#
.#.#.
..#..

 

Test 2:

Input:

DOG

Output:

..#…#…*..
.#.#.#.#.*.*.
#.D.#.O.*.G.*
.#.#.#.#.*.*.
..#…#…*..

Test 3:

Input:

ABCD

Output:

..#…#…*…#..
.#.#.#.#.*.*.#.#.
#.A.#.B.*.C.*.D.#
.#.#.#.#.*.*.#.#.
..#…#…*…#..

2. Code tham khảo P145PROE spoj PTIT

 {
kieu 1   kieu 2 kieu 3
..#. ..#. ..*.. .#..
.#.# .#.# .*.*. #.#.
#.A. #.B. *.C.* .D.#
.#.# .#.# .*.*. #.#.
..#. ..#. ..*.. .#..

             }

const   fi='';
        nmax=15;
type    data=longint;
var
        f:text;
        B:string;
        n,j,i:data;
        Kieu1,Kieu2,Kieu3:array[1..5] of string;
        S:array[1..5] of ansistring;
begin
        assign(f,fi); reset(f);
        readln(f,b);
        n:=length(b);
        close(f);

        kieu1[1]:='..#.';
        kieu1[2]:='.#.#';
        kieu1[3]:='#.A.';
        kieu1[4]:='.#.#';
        kieu1[5]:='..#.';

        kieu2[1]:='..*..';
        kieu2[2]:='.*.*.';
        kieu2[3]:='*.B.*';
        kieu2[4]:='.*.*.';
        kieu2[5]:='..*..';

        kieu3[1]:='.#.';
        kieu3[2]:='#.#';
        kieu3[3]:='.D.';
        kieu3[4]:='#.#';
        kieu3[5]:='.#.';

        kieu1[3][3]:=b[1];
        for j:=1 to 5 do
                s[j]:=s[j]+kieu1[j];



        for i:=2 to n do
                begin
                        if i mod 3 = 0 then
                                begin
                                        kieu2[3][3]:=b[i];
                                        for j:=1 to 5 do
                                                S[j]:=s[j]+kieu2[j];
                                end
                        else
                                if ((i-1) mod 3 = 0) then
                                        begin
                                                kieu3[3][2]:=b[i];
                                                for j:=1 to 5 do
                                                        s[j]:=s[j]+kieu3[j];
                                        end
                                else
                                        begin
                                                kieu1[3][3]:=b[i];
                                                for j:=1 to 5 do
                                                        s[j]:=s[j]+kieu1[j];
                                        end;

                end;

        if n mod 3 <>0 then
                begin
                        s[1]:=s[1]+'.';
                        s[2]:=s[2]+'.';
                        s[3]:=s[3]+'#';
                        s[4]:=s[4]+'.';
                        s[5]:=s[5]+'.';
                end;

        for i:=1 to 5 do
                writeln(s[i]);
end.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *