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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | { 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. |
Bài viết liên quan
- Spoj PTIT PTIT016C – ACM PTIT 2016 C – Chẵn lẻ
- P167PROD spoj PTIT – ROUND 7D – ABC
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156PROE spoj PTIT – ROUND 6E – Phép dịch
- P156SUMH spoj PTIT – ROUND 6H – Kim cương
- P151SUMI spoj PTIT – Bóng đá
- BCBASEAD spoj PTIT – Phép cộng cơ sở
- PTIT122F spoj PTIT – Số siêu tự nhiên
- PTIT121K spoj PTIT – Đường đi lớn nhất
- PTIT121I spoj PTIT – Lặp lại các kí tự