Từ trong từ trong từ trong từ. . .


17

Trong phông chữ pixel này của các chữ cái in hoa của bảng chữ cái, tất cả các ký tự rộng 5 đơn vị và cao 5.

 ███  ████   ███  ████  █████ █████  ████ █   █ █████     █ █   █ █     █   █
█   █ █   █ █   █ █   █ █     █     █     █   █   █       █ █  █  █     ██ ██
█████ ████  █     █   █ ████  ████  █  ██ █████   █       █ ███   █     █ █ █
█   █ █   █ █   █ █   █ █     █     █   █ █   █   █   █   █ █  █  █     █   █
█   █ ████   ███  ████  █████ █      ████ █   █ █████  ███  █   █ █████ █   █

█   █  ███  ████   ███  ████   ████ █████ █   █ █   █ █   █ █   █ █   █ █████
██  █ █   █ █   █ █   █ █   █ █       █   █   █ █   █ █   █  █ █   █ █     █ 
█ █ █ █   █ ████  █   █ ████   ███    █   █   █  █ █  █ █ █   █     █     █  
█  ██ █   █ █     █  ██ █  █      █   █   █   █  █ █  █ █ █  █ █    █    █   
█   █  ███  █      ████ █   █ ████    █    ███    █    █ █  █   █   █   █████

Cũng có 1 đơn vị không gian giữa các chữ cái và giữa các dòng, như có thể nhìn thấy. Vì vậy, mỗi chữ cái có thể mất tới 6 × 6 đơn vị không gian.

Giả sử thay vì sử dụng ký tự khối đầy đủ ( ) để tạo trực tiếp hình dạng của các chữ cái, chúng tôi muốn sử dụng các chữ cái khác trong cùng một phông chữ . Điều này liên quan đến việc tăng kích thước của văn bản 6 lần để các chữ cái được tạo thành từ các khối đầy đủ có thể được sử dụng làm thay thế toàn khối trong văn bản lớn hơn.

Nếu điều đó không có ý nghĩa thì hy vọng ví dụ này sẽ. Đây là chữ A được tạo bằng chữ B sử dụng phông chữ pixelated:

      ████  ████  ████       
      █   █ █   █ █   █      
      ████  ████  ████       
      █   █ █   █ █   █      
      ████  ████  ████       
                             
████                    ████ 
█   █                   █   █
████                    ████ 
█   █                   █   █
████                    ████ 
                             
████  ████  ████  ████  ████ 
█   █ █   █ █   █ █   █ █   █
████  ████  ████  ████  ████ 
█   █ █   █ █   █ █   █ █   █
████  ████  ████  ████  ████ 
                             
████                    ████ 
█   █                   █   █
████                    ████ 
█   █                   █   █
████                    ████ 
                             
████                    ████ 
█   █                   █   █
████                    ████ 
█   █                   █   █
████                    ████ 

B được tạo thành từ các khối đầy đủ và A được tạo thành từ B. Lưu ý rằng B vẫn có một đơn vị giữa chúng theo chiều ngang và chiều dọc.

Chúng ta có thể mở rộng ý tưởng này bằng cách sử dụng các từ thay vì chỉ các chữ cái. Đây là "NƯỚC" làm từ "CHÁY":

█████                   █████             ████  █████ █████             █████ ████  █████ █████ █████       ████  █████ █████ █████ ████        █████ █████ █████ ████       
█                         █               █   █ █     █                   █   █   █ █     █       █         █   █ █     █       █   █   █       █     █       █   █   █      
████                      █               ████  ████  ████                █   ████  ████  ████    █         ████  ████  ████    █   ████        ████  ████    █   ████       
█                         █               █  █  █     █                   █   █  █  █     █       █         █  █  █     █       █   █  █        █     █       █   █  █       
█                       █████             █   █ █████ █                 █████ █   █ █████ █     █████       █   █ █████ █     █████ █   █       █████ █     █████ █   █      
                                                                                                                                                                             
█████                   █████       ████                    █████                   █████                   █████                               ████                    █████
█                         █         █   █                   █                       █                         █                                 █   █                   █    
████                      █         ████                    ████                    ████                      █                                 ████                    ████ 
█                         █         █  █                    █                       █                         █                                 █  █                    █    
█                       █████       █   █                   █████                   █                       █████                               █   █                   █████
                                                                                                                                                                             
█████       █████       ████        █████ █████ █████ ████  █████                   █████                   █████ ████  █████ █████             █████ ████  █████ █████      
█             █         █   █       █     █       █   █   █ █                       █                         █   █   █ █     █                   █   █   █ █     █          
████          █         ████        ████  ████    █   ████  ████                    ████                      █   ████  ████  ████                █   ████  ████  ████       
█             █         █  █        █     █       █   █  █  █                       █                         █   █  █  █     █                   █   █  █  █     █          
█           █████       █   █       █████ █     █████ █   █ █████                   █                       █████ █   █ █████ █                 █████ █   █ █████ █          
                                                                                                                                                                             
█████       █████       ████        █████                   █████                   █████                   ████                                █████             █████      
█             █         █   █       █                       █                         █                     █   █                               █                 █          
████          █         ████        ████                    ████                      █                     ████                                ████              ████       
█             █         █  █        █                       █                         █                     █  █                                █                 █          
█           █████       █   █       █████                   █                       █████                   █   █                               █████             █          
                                                                                                                                                                             
      █████       █████             ████                    █████                   █████                   █████ ████  █████ █████ █████       ████                    █████
      █             █               █   █                   █                       █                         █   █   █ █     █       █         █   █                   █    
      ████          █               ████                    ████                    ████                      █   ████  ████  ████    █         ████                    ████ 
      █             █               █  █                    █                       █                         █   █  █  █     █       █         █  █                    █    
      █           █████             █   █                   █████                   █                       █████ █   █ █████ █     █████       █   █                   █████

Lưu ý cách "CHÁY" xuất hiện liên tục trên mỗi dòng và luôn theo thứ tự, bất kể khoảng cách giữa các chữ cái là bao nhiêu. Ba trong số các trường hợp ngoài cùng của "CHÁY" đã bị cắt sớm vì cách các chữ cái của "NƯỚC" được tạo hình.

Ý tưởng này có thể được mở rộng hơn nữa, bằng cách sử dụng những từ được tạo từ này để tạo ra các từ được tạo thành từ các từ hoặc thậm chí các từ được tạo từ các từ được tạo từ các từ . Không có giới hạn về mặt lý thuyết.

Một ví dụ khác sẽ đặt bài đăng này vượt quá giới hạn 30k ký tự, nhưng bạn có thể thấy ý nghĩa của "từ được tạo từ từ" bằng cách chạy Stack Snippet tiện lợi này. Chỉ cần để lại các tham số ở mặc định của chúng và nhấn "Go!". Bạn sẽ thấy từ "DOG" được tạo từ chữ "CAT" được tạo từ chữ "MOUSE".

Nhập bất kỳ danh sách các từ được phân tách bằng dấu cách chỉ chứa chữ in hoa trong hộp văn bản sẽ tạo ra từ đầu tiên được tạo từ từ thứ hai được tạo từ thứ ba, được tạo từ thứ tư, được làm bằng ... vv

CẢNH BÁO: Nhập nhiều hơn 4 hoặc thậm chí 3 từ sẽ tạo ra RẤT NHIỀU văn bản và mất nhiều thời gian. Nó có thể sập trình duyệt / máy tính / xe hơi của bạn.

Thử thách

Mục tiêu của thử thách này là phản chiếu những gì Stack Snippet làm với số lượng nhân vật ít nhất.

Bạn phải viết một chương trình lấy một chuỗi các từ được phân tách bằng dấu cách chỉ chứa các chữ in hoa và xuất ra từ đầu tiên "được tạo từ" thứ hai "được tạo từ" thứ ba, v.v., sử dụng phông chữ pixel được đưa ra ở trên.

Hộp kiểm "Plain ASCII" và các tính năng kích thước phông chữ của đoạn mã không cần phải được hỗ trợ trong chương trình của bạn. Phản ánh sự chuyển đổi từ danh sách các từ thành từ được tạo thành từ là điểm chính và yêu cầu duy nhất.

Chi tiết

  • Đầu vào phải đến từ stdin, dòng lệnh hoặc bạn có thể chỉ cần viết một hàm có một chuỗi.

  • Bạn có thể giả sử đầu vào luôn hợp lệ, tức là một chuỗi các từ được làm bằng chữ in hoa, được phân tách bằng chính xác một khoảng trắng, không có khoảng trắng ở đầu hoặc cuối.

  • Đầu ra phải đi đến thiết bị xuất chuẩn (hoặc thay thế tương tự) hoặc đến một tệp có tên bạn chọn.

  • Đầu ra phải bao gồm hoàn toàn các ký tự không gian trống , ký tự toàn không gian và dòng mới.

    • Các ký tự trống / toàn không gian phải tương ứng là khoảng trắng và khối đầy đủ ( , ) hoặc dấu chấm và X ( ., X).
  • Đầu ra không được chứa bất kỳ cột hàng đầu nào chỉ chứa các ký tự không gian trống , mặc dù mọi sự kết hợp của các ký tự không gian trống trên bất kỳ dòng nào đều được cho phép.

    • Vì vậy, điều này được cho phép:

      X...X.XXXXX..
      X...X.X
      X.X.X.XXXX....
      X.X.X.X..
      .X.X..XXXXX..
      
    • Nhưng đây không phải là:

      .X...X.XXXXX..
      .X...X.X
      .X.X.X.XXXX....
      .X.X.X.X..
      ..X.X..XXXXX..
      
  • Không được có hàng đầu hoặc cuối chỉ chứa các ký tự không gian trống . Một dòng mới duy nhất được tùy chọn cho phép.

Đây là một phiên bản thân thiện hơn của phông chữ:

.XXX.
X...X
XXXXX
X...X
X...X

XXXX.
X...X
XXXX.
X...X
XXXX.

.XXX.
X...X
X....
X...X
.XXX.

XXXX.
X...X
X...X
X...X
XXXX.

XXXXX
X....
XXXX.
X....
XXXXX

XXXXX
X....
XXXX.
X....
X....

.XXXX
X....
X..XX
X...X
.XXXX

X...X
X...X
XXXXX
X...X
X...X

XXXXX
..X..
..X..
..X..
XXXXX

....X
....X
....X
X...X
.XXX.

X...X
X..X.
XXX..
X..X.
X...X

X....
X....
X....
X....
XXXXX

X...X
XX.XX
X.X.X
X...X
X...X

X...X
XX..X
X.X.X
X..XX
X...X

.XXX.
X...X
X...X
X...X
.XXX.

XXXX.
X...X
XXXX.
X....
X....

.XXX.
X...X
X...X
X..XX
.XXXX

XXXX.
X...X
XXXX.
X..X.
X...X

.XXXX
X....
.XXX.
....X
XXXX.

XXXXX
..X..
..X..
..X..
..X..

X...X
X...X
X...X
X...X
.XXX.

X...X
X...X
.X.X.
.X.X.
..X..

X...X
X...X
X.X.X
X.X.X
.X.X.

X...X
.X.X.
..X..
.X.X.
X...X

X...X
.X.X.
..X..
..X..
..X..

XXXXX
...X.
..X..
.X...
XXXXX

Chấm điểm

Đây là vì vậy bài nộp ngắn nhất tính bằng byte sẽ thắng. Bất kỳ trường hợp nào của một khối đầy đủ ( ) có thể được tính là 1 byte thay vì 3 vì vậy các bài nộp sử dụng Xkhông có lợi thế.


5
Bạn có thể chạy đoạn mã JavaScript sau (ví dụ: bằng cách nhập javascript:vào thanh URL và dán nó) để làm cho nghệ thuật ASCII ở đây dễ đọc hơn nhiều$('#question pre').css('line-height',1) . Kết quả: i.stack.imgur.com/XmB8C.png
Doorknob

1
Hoặc bao gồm các câu trả lời$('#question pre, .answer pre').css('line-height',1)
Martin Ender

Tôi biết rằng đã quá muộn để thực hiện trò đùa này, nhưng tôi không thể cưỡng lại: i.imgur.com/vAZi1Zt.png .
thuật toán

Làm thế nào tôi bỏ lỡ thử thách này?!
Bạch tuộc ma thuật Urn

Câu trả lời:


8

CJam, 171 165 162 161 byte

qS/_0=,0a*a\{{W:I;{'[{RI):I=}?i65-"c¿»ÐòO*4Õ]%ÐÎ<à IX]{-ïèq=ô}s×o)½2~û³'é¨1ÃlØeúN!Ö3~4ÜË|ÕÇäaepý®"255b2b5/5/=}%z1af*}%R,1a*a*}fR2a*"█ 
"f=

Tôi đang coi là 1 byte. Tất cả các ký tự còn lại đều nằm trong phạm vi ASCII, do đó, coi chúng là 1 byte.

Bạn có thể sử dụng pastebin này cho mã chính xác

Ví dụ đầu ra cho đầu vào:

FIRST HELLO WORLD

nhập mô tả hình ảnh ở đây

Làm thế nào nó hoạt động

Đầu tiên

"c¿»ÐòO*4Õ]%ÐÎ<à IX]{-ïèq=ô}s×o)½2~û³'é¨1ÃlØeúN!Ö3~4ÜË|ÕÇäaepý®"255b2b5/5/

chỉ đơn giản là mẫu cho mỗi trong số 27 ký tự ( A-Zvà khoảng trắng) được tạo thành từ 0(tại Xcác vị trí) và 1(tại .các vị trí). Sau khi giải mã, điều này đưa ra một mảng 27 phần tử gồm các mảng 2D gồm 5 hàng và 5 cột đại diện X.cho mỗi trong số 27 ký tự. Hãy để chúng tôi gọi mảng này là L.

Bây giờ mã còn lại:

qS/                      "Read the input and split it on space to get array Q";
   _0=                   "Get a copy of the first element of the above array";
      ,0a*               "Create an array filled with 0 with length of the first element";
          a\             "Wrap that array in another array and swap to get Q on top";
{  ...  }fR              "This is a for each loop on the array Q with R having the";
                         "current element value in each loop";
 {...}%                  "In the first iteration, the 0 array we created will be the";
                         "only thing on stack, in subsequent iterations, the result";
                         "of previous iteration will be on stack";
  W:I;                   "Initialize variable I with -1";
      {...}%             "Run this block on each element of the current array";
{'[{RI):I=}?i65-L=}%     "This is the above code block. In each iteration, we figure";
                         "out what character needs to be be put at the current index";
                         "Then we get the pattern of 0 and 1 for that character";
 '[{      }?             "Stack contains either 0 or 1. If it is 1, we want to leave";
                         "that index blank, so we put pattern of '[ which is 5X5 spaces";
    RI_:I=               "When we do not want a blank character, we get the next"
                         "character from R to fill the non empty space";
            i65-         "Convert A-Z  to 0-27 notation";
                L=       "Get the corresponding pattern from the pattern array L";
z1af*                    "After the above iterations, for each line of the previous";
                         "iteration's output, we get a vertical 2D array for next";
                         "iteration. We transpose it and join each character in";
                         "this line using a space";
      R,1a*a*            "After getting all lines from current iteration, we join them";
                         "with one full line of space characters";

 2a*                     "After all iterations, we have the 0 1 based 2D array for the";
                         "final output ASCII with each row representing a line. We join";
                         "these lines with 2, to get a 0 1 2 based array";
     "█                  "A brick, a space and a newline. Mapping 1 to 1 with 0 1 2";
"                        "based array";
 f=                      "For each of the 0 1 2 based array element, convert them to";
                         "one of the brick, space and new line character";

Dùng thử trực tuyến tại đây


9

Python 3, 437 byte

from numpy import*
s=input().split()
d=fromstring('NONO__^Q_PQAQQNONO^_QQQQQ_QQQQAAAQDPIA[SQQQQADQQQJJH_OAQOOY_DPGAUUQOQONDQJUDDDQQQQAAQQDQIAQYQAYIPDQJUJDBQONO_A^Q_NQ_QQNA^QODNDJQD_',byte)[:,None]>>arange(5)&1
b=0
x=1
y=len(s[0])
n=[[1]*y]
for w in s:
 g=n;b+=x;x*=6;n=zeros((x,x*y),int);i=-6
 for q in g:
  o=j=0;i+=6
  for p in q:n[i:i+5,j:j+5]|=d[ord(w[o%len(w)])-65::26]*p;o+=p;j+=6
for r in n[:-b]:print(''.join(' █'[x] for x in r))

Các hình dạng ký tự được mã hóa trong ASCII. Mỗi byte ASCII tương ứng với một hàng của một ký tự, với các bit đại diện cho các khối đơn vị. Đây không phải là một sơ đồ rất hiệu quả, nhưng thật dễ dàng để giải nén vào bitmas NumPy cho mỗi nhân vật.

Chúng tôi bắt đầu với một mảng 2d của 1s. Nó có một cột cho mỗi ký tự trong từ đầu tiên và một hàng đơn. Sau đó, với mỗi từ, chúng tôi tạo ra một mảng 0 mới, cao hơn sáu lần và rộng hơn sáu lần so với mảng trước đó. Trong đó mảng trước có 1, phần 6x6 tương ứng của mảng mới được lấp đầy bằng bitmask của ký tự thích hợp.

Đây là một ví dụ (với một phông chữ cực kỳ nhỏ):

nhập mô tả hình ảnh ở đây


5

CJam, 181 174 170 byte

Tất cả các ký tự không phải ASCII này vẫn nằm trong phạm vi ASCII mở rộng, vì vậy tất cả chúng có thể được mã hóa trong một byte đơn. (Ngoại trừ , nhưng cái đó được xử lý đặc biệt theo thông số thách thức.) Do đó, tôi đang đếm mỗi ký tự là một byte.

"Á  :½A%õ­Íú£à˪ë8!Õ*j4¶fVËa¡ùÔ¯{+ÛyéâõKn#@?
9Ôia)(Ñç;~LÒª"257b2bYYb" █"er5/5/:L;lS/_0=,'█*a\{f{W:T;\{' ={S5*a5*}{T):T1$='A-L=}?\}%W<zSf*}Sa*}/N*

Stack Exchange có thể đã xử lý một số ký tự không thể in được, vì vậy bạn có thể phải sao chép mã từ pastebin này .

Kiểm tra nó ở đây.

Đưa đầu vào qua STDIN làm danh sách các từ được phân tách bằng dấu cách. Từ đầu tiên là quy mô lớn nhất. Ví dụ:

HOLISM REDUCTIONISM

sản lượng

████                    █████             ████  █   █  ███              █████                               █████  ███  █   █ █████  ████             █   █ ████  █████ ████        █   █                    ███ 
█   █                   █                 █   █ █   █ █   █               █                                   █   █   █ ██  █   █   █                 ██ ██ █   █ █     █   █       █   █                   █   █
████                    ████              █   █ █   █ █                   █                                   █   █   █ █ █ █   █    ███              █ █ █ ████  ████  █   █       █   █                   █    
█  █                    █                 █   █ █   █ █   █               █                                   █   █   █ █  ██   █       █             █   █ █  █  █     █   █       █   █                   █   █
█   █                   █████             ████   ███   ███                █                                 █████  ███  █   █ █████ ████              █   █ █   █ █████ ████         ███                     ███ 

████                    █████       ████                    █   █        ███                                            █████                   █████                                ███  █   █       █████  ████
█   █                   █           █   █                   █   █       █   █                                             █                       █                                 █   █ ██  █         █   █    
████                    ████        █   █                   █   █       █                                                 █                       █                                 █   █ █ █ █         █    ███ 
█  █                    █           █   █                   █   █       █   █                                             █                       █                                 █   █ █  ██         █       █
█   █                   █████       ████                     ███         ███                                              █                     █████                                ███  █   █       █████ ████ 

████  █████ ████  █   █  ███        █████                   █████        ███                                            █   █                         █████  ████ █   █             ████        █████       ████ 
█   █ █     █   █ █   █ █   █         █                       █         █   █                                           ██  █                           █   █     ██ ██             █   █       █           █   █
████  ████  █   █ █   █ █             █                       █         █   █                                           █ █ █                           █    ███  █ █ █             ████        ████        █   █
█  █  █     █   █ █   █ █   █         █                       █         █   █                                           █  ██                           █       █ █   █             █  █        █           █   █
█   █ █████ ████   ███   ███          █                     █████        ███                                            █   █                         █████ ████  █   █             █   █       █████       ████ 

████                    █████       ████                    █   █        ███                                            █████                                           █████        ███                    █   █
█   █                   █           █   █                   █   █       █   █                                             █                                               █         █   █                   ██  █
████                    ████        █   █                   █   █       █                                                 █                                               █         █   █                   █ █ █
█  █                    █           █   █                   █   █       █   █                                             █                                               █         █   █                   █  ██
█   █                   █████       ████                     ███         ███                                              █                                             █████        ███                    █   █

████                    █████             ████  █   █  ███              █████ █████  ███  █   █ █████        ████ █   █ ████  █████ ████        █   █  ███  █████ █████              ███                    █   █
█   █                   █                 █   █ █   █ █   █               █     █   █   █ ██  █   █         █     ██ ██ █   █ █     █   █       █   █ █   █   █     █               █   █                   ██  █
████                    ████              █   █ █   █ █                   █     █   █   █ █ █ █   █          ███  █ █ █ ████  ████  █   █       █   █ █       █     █               █   █                   █ █ █
█  █                    █                 █   █ █   █ █   █               █     █   █   █ █  ██   █             █ █   █ █  █  █     █   █       █   █ █   █   █     █               █   █                   █  ██
█   █                   █████             ████   ███   ███                █   █████  ███  █   █ █████       ████  █   █ █   █ █████ ████         ███   ███    █   █████              ███                    █   █

Giải trình

Đầu tiên, chúng tôi lưu trữ một bảng tra cứu cho các hình dạng chữ cái trong L:

"Á  :½A%õ­Íú£à˪ë8!Õ*j4¶fVËa¡ùÔ¯{+ÛyéâõKn#@?
9Ôia)(Ñç;~LÒª"257b2bYYb" █"er5/5/:L;

Chuỗi đầu tiên chỉ là một số nén. Chúng tôi coi các điểm mã là chữ số cơ sở-257, sau đó chúng tôi chuyển đổi số kết quả thành nhị phân. YYblà 2 là trong cơ sở 2, vì vậy nó cho [1 0]. Chúng tôi sử dụng thay thế phần tử với " █"để biến các chữ số thành khoảng trắng và khối ký tự. Cuối cùng, chúng tôi chia chuỗi thành các hàng gồm 5 ký tự và một lần nữa thành các khối gồm 5 hàng. Kết quả được lưu trữ trong Lvà loại bỏ khỏi ngăn xếp.

Bây giờ, ý tưởng chung là bắt đầu với một dòng có độ dài của từ có tỷ lệ lớn nhất. Và sau đó cho mỗi từ chúng ta đi qua lưới hiện có và mở rộng tất cả các khối thành ký tự tương ứng ở quy mô nhỏ hơn tiếp theo (trong khi chèn các hàng và cột trống để phân tách). Đây là sự chuẩn bị đầu vào:

lS/_0=,'█*a\
lS/          "Read input, split on spaces.";
   _0=       "Duplicate and get first word.";
      ,'█*   "Get length repeat █ that many times.";
          a  "Wrap in array, to make the grid two-dimensional.";
           \ "Swap with word list.";

Trước tiên chúng ta hãy xem cấu trúc ngoài cùng của chương trình còn lại. Khối tiếp theo {...}/được chạy cho mỗi từ và mở rộng từng ký tự khối.

{f{...}Sa*}/N*
{         }/   "Process each word in the input.";
 f{...}        "Map this block onto each line of the grid, passing in the current word as well.";
       Sa*     "Since each original line will be turned into 5 lines, the grid is still grouped
                into blocks of 5 lines. We join them together with empty lines as required.";
            N* "Join all lines together with newlines.";

Cuối cùng, hãy xem cách một dòng được mở rộng:

W:T;\{' ={S5*a5*}{T):T1$='A-L=}?\}%
W:T;                                "Store -1 in T.";
    \                               "Swap word with line.";
     {                           }% "Map this block onto each character.";
      ' =                           "Check if the character is a space.";
         {      }{            }?    "If it is, run the first block, otherwise the second.";
          S5*                       "Create a string of five spaces.";
             a5*                    "Create an array of five such strings.";
                  T):T              "Push T, increment, store in T.";
                      1$=           "Copy the word and access the T'th character, cyclically.";
                         'A-        "Subtract A from the letter.";
                            L=      "Use the result to get the character shape from L.";
                                \   "Swap resulting block with word.";

"At this point each character is replaced with a 5x5 array of new characters.
 So we actually have a 3D array right now. Since we used a map operation, the
 current word will also be at the end of the array, which we need to get rid off.";

W<zSf*
W<     "Discard last array element - the current word.";
  z    "Zip or transpose the top two levels of the array.";
   Sf* "Join each line together with spaces.";

Kết quả được in tự động vào cuối chương trình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.