hội người tạm mù việt nam

Xem PDF

Điểm: 1 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Trường Lê Quý Đôn vừa tổ chức không-biết-có-nên-gọi-là-thành-công-hay-không hội trại truyền thống “Nhiệt huyết Thiên Thanh” năm 2023.

Bạn Thành - một học sinh Đà Nẵng cầu toàn đi du học tại Việt Nam. Vì là người cầu toàn nên gì bạn cũng theo quy tắc. Vì vậy, khi lớp bạn tập động tác cho bài nhảy “Việt Nam ơi”, bạn luôn là người làm chuẩn nhất.

Sau khi nếm mùi hào quang rực rỡ trên sân khấu trại với bài biểu diễn đó, vì ánh đèn sân khấu chiếu quá mạnh, cùng với ở dưới dàn khán giả bật quá nhiều đèn Flash điện thoại, nên Thành đã bị mù tạm thời. Chính vì vậy, bạn chưa thể viết được như người bình thường. May mắn là ngày đó bạn chơi thân với chị Hà nên được chị dạy cho chữ nổi Braille, cũng đọc được sơ sơ.

Câu chuyện trên tất nhiên có thể không có thật, nhưng việc bạn lại phải xử lý xâu Unicode là có thật.
Yên tâm đi, cũng không khó, và solution vào đâu đó 100 dòng, nhưng gần một nửa khối lượng là định nghĩa giá trị rồi.

Test 1

Input
⠨⠉⠹⠠⠝⠛⠀⠓⠕⠁⠰⠀⠨⠭⠤⠁⠀⠓⠹⠊⠠⠀⠨⠉⠓⠢⠥⠀⠝⠛⠓⠊⠤⠁⠀⠨⠧⠠⠊⠣⠞⠀⠨⠝⠁⠍
Output
4
Note
Hint will be here and in the announcement

Test 1

Input
⠨⠛⠊⠢⠁⠊⠀⠨⠅⠓⠔⠥⠽⠣⠝⠀⠅⠓⠔⠊⠉⠓⠀⠨⠅⠰⠽⠀⠞⠓⠊⠀⠨⠓⠠⠕⠉⠀⠎⠊⠝⠓⠀⠛⠊⠢⠕⠊⠀⠨⠟⠥⠔⠹⠉⠀⠛⠊⠁⠀⠨⠞⠗⠥⠝⠛⠀⠓⠠⠕⠉⠀⠨⠏⠓⠢⠹⠀⠞⠓⠹⠝⠛⠀⠍⠹⠝⠀⠨⠞⠊⠝⠀⠓⠠⠕⠉
Output
0
Note


Bình luận


  • 0
    penistone    2:37 p.m. 27 Tháng 9, 2024
    Code (cho ai muốn ko làm mà có ăn)
    Python
        BRAILLE = "⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿"
    CNT_BRAILLE = 64
    BRCODE = [0] * CNT_BRAILLE
    NAN = -1
    
    def madeCode():
        for num in range(CNT_BRAILLE):
            save = num
            ans = 0
            for i in range(1, 7):
                if num & 1:
                    ans = ans * 10 + i
                num >>= 1
            BRCODE[save] = ans
    
    def findCode(c):
        for i in range(CNT_BRAILLE):
            if c == BRAILLE[i]:
                return BRCODE[i]
        return NAN
    
    madeCode()
    
    LETTER = " aăâbcdđeêfghijklmnoôơpqrstuưvwxyz"
    CNT_LETTER = 34
    CHAR_CODE = [
        0, 1, 345, 16, 12, 14,
        145, 2346, 15, 126,
        124, 1245, 125, 24,
        245, 13, 123, 134,
        1345, 135, 1456, 246,
        1234, 12345, 1235, 234,
        2345, 136, 1256, 1236,
        2456, 1346, 13456, 1356
    ]
    
    def getLetter(code):
        for i in range(CNT_LETTER):
            if code == CHAR_CODE[i]:
                return LETTER[i]
        return ''
    
    def letter2code(letter):
        return CHAR_CODE[LETTER.find(letter)]
    
    TONE = [35, 56, 26, 36, 6]
    VOWEL = "aăâeêioôơuưy"
    VOWEL_WITH_TONES = "áàảãạắằẳẵặấầẩẫậéèẻẽẹếềểễệíìỉĩịóòỏõọốồổỗộớờởỡợúùủũụứừửữựýỳỷỹỵ"
    CAPS_VOWEL_WITH_TONES = "ÁÀẢÃẠẮẰẲẴẶẤẦẨẪẬÉÈẺẼẸẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌỐỒỔỖỘỚỜỞỠỢÚÙỦŨỤỨỪỬỮỰÝỲỶỸỴ"
    
    DIGIT = "1234567890"
    CHAR_DIGIT = [1, 12, 14, 145, 15, 124, 1245, 125, 24, 245]
    
    CAPS_ONE = 46
    CAPS_ALL = 456
    START_DIGIT = 3456
    
    def makeBrailleWord(letters: list, tone, cap):
        model = letters[:]
        length = len(letters)
        if tone != NAN:
            if length >= 2 and model[0] == letter2code('g') and model[1] == letter2code('i'):
                if length == 2 or LETTER[CHAR_CODE.index(model[2])] not in VOWEL:
                    model.insert(1, tone)
                else:
                    model.insert(2, tone)
            elif length >= 2 and model[0] == letter2code('q') and model[1] == letter2code('u'):
                model.insert(2, tone)
            else:
                firstVowel = NAN
                for i in range(length):
                    if LETTER[CHAR_CODE.index(model[i])] in VOWEL:
                        firstVowel = i
                        break
                if firstVowel != NAN:
                    model.insert(firstVowel, tone)
        if cap:
            if model[0] in TONE:
                model.insert(1, CAPS_ONE)
            else:
                model.insert(0, CAPS_ONE)
        return model
    
    s = input().split(BRAILLE[0])
    answer = 0
    for word in s:
        length = len(word)
        allChar = []
        for c in word:
            allChar.append(findCode(c))
        if allChar[0] == START_DIGIT:
            continue
        else:
            cap = False
            tone = NAN
            letters = []
            for c in allChar:
                if c == CAPS_ONE:
                    cap = True
                elif c in TONE:
                    tone = c
                else:
                    letters.append(c)
    
            model = makeBrailleWord(letters, tone, cap)
            for i in range(length):
                if i < len(model) and model[i] != allChar[i]:
                    answer += 1
                    break
        print(answer)
    

    • 0
      lehongduc    10:19 p.m. 14 Tháng 8, 2024 chỉnh sửa 3

      test 1 là: Cộng hòa xã hội chủ nghĩa Việt Nam.
      test 2 là: Giải Khuyến Khích Kỳ Thi Học Sinh Giỏi Quốc Gia Trung Học Phổ Thông Môn Tin Học.
      liên quan gì đến số 4 và 0 ?
      ⠠⠠⠠⠭⠊⠝⠀⠝⠓⠕⠀⠍⠕⠊⠀⠝⠛⠥⠕⠊⠀⠧⠁⠀⠁⠙⠍⠊⠝⠀⠛⠊⠁⠊⠀⠞⠓⠊⠉⠓⠀⠁⠖


      • 0
        hoangphucnguyen2012    3:00 p.m. 13 Tháng 8, 2024

        Cái này ngoài if-test ra thì mình cũng chả biết cách làm


        • 0
          dxuloc    10:30 a.m. 10 Tháng 8, 2024

          Yêu cầu zipdang04 tăng lên thành 999đ, ko thì 500 cũng đc.

          1 phản hồi

          • 0
            linhtrang2014    9:46 a.m. 29 Tháng 7, 2024

            1 điểm 🙂


            • 0
              hoangphucnguyen    9:56 p.m. 9 Tháng 5, 2024

              chịu


              • 1
                dxuhai    7:43 p.m. 29 Tháng 4, 2024

                SOS


                • -1
                  tkdvnkdn88    8:21 p.m. 7 Tháng 11, 2023

                  ???


                  • 4
                    Trung09    8:27 a.m. 23 Tháng 8, 2023

                    BRAILLE = "⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿"
                    CNT_BRAILLE = 64
                    BRCODE = [0] * CNT_BRAILLE
                    NAN = -1

                    def madeCode():
                    for num in range(CNT_BRAILLE):
                    save = num
                    ans = 0
                    for i in range(1, 7):
                    if num & 1:
                    ans = ans * 10 + i * (num & 1)
                    num >>= 1
                    BRCODE[save] = ans
                    def findCode(c):
                    for i in range(CNT_BRAILLE):
                    if c == BRAILLE[i]:
                    return BRCODE[i]
                    return NAN
                    madeCode();

                    LETTER = " aăâbcdđeêfghijklmnoôơpqrstuưvwxyz"
                    CNT_LETTER = 34
                    CHAR_CODE=[
                    0, 1,345,16,12,14,
                    145,2346,15,126,
                    124,1245,125,24,
                    245,13,123,134,
                    1345,135,1456,246,
                    1234,12345,1235,234,
                    2345,136,1256,1236,
                    2456,1346,13456,1356
                    ]
                    def getLetter(code):
                    for i in range(CNT_LETTER):
                    if code == CHAR_CODE[i]:
                    return LETTER[i]
                    return ''
                    def letter2code(letter):
                    return CHAR_CODE[LETTER.find(letter)]

                    TONE = [35, 56, 26, 36, 6]
                    VOWEL = "aăâeêioôơuưy"
                    VOWEL_WITH_TONES = "áàảãạắằẳẵặấầẩẫậéèẻẽẹếềểễệíìỉĩịóòỏõọốồổỗộớờởỡợúùủũụứừửữựýỳỷỹỵ"
                    CAPS_VOWEL_WITH_TONES = "ÁÀẢÃẠẮẰẲẴẶẤẦẨẪẬÉÈẺẼẸẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌỐỒỔỖỘỚỜỞỠỢÚÙỦŨỤỨỪỬỮỰÝỲỶỸỴ"

                    DIGIT = "1234567890"
                    CHAR_DIGIT = [
                    1, 12, 14, 145, 15, 124, 1245, 125, 24, 245
                    ]

                    CAPS_ONE = 46
                    CAPS_ALL = 456
                    START_DIGIT = 3456

                    def makeBrailleWord(letters: list, tone, cap):
                    model = letters[:]
                    length = len(letters)
                    if tone != NAN:
                    # tone = TONE[tone]
                    if length >= 2 and model[0] == letter2code('g') and model[1] == letter2code('i'):
                    if length == 2 or LETTER[CHAR_CODE.index(model[2])] not in VOWEL:
                    model.insert(1, tone)
                    else:
                    model.insert(2, tone)
                    elif length >= 2 and model[0] == letter2code('q') and model[1] == letter2code('u'):
                    model.insert(2, tone)
                    else:
                    firstVowel = NAN
                    for i in range(length):
                    if LETTER[CHAR_CODE.index(model[i])] in VOWEL:
                    firstVowel = i
                    break
                    model.insert(firstVowel, tone)
                    if cap:
                    if model[0] in TONE:
                    model.insert(1, CAPS_ONE)
                    else:
                    model.insert(0, CAPS_ONE)
                    return model

                    s = input().split(BRAILLE[0])
                    answer = 0
                    for word in s:
                    length = len(word)
                    allChar = []
                    for c in word:
                    allChar.append(findCode(c))
                    # print(allChar)
                    if allChar[0] == START_DIGIT:
                    continue
                    else:
                    cap = False; tone = NAN
                    letters = []
                    for c in allChar:
                    if c == CAPS_ONE:
                    cap = True
                    elif c in TONE:
                    tone = c
                    else:
                    letters.append(c)

                        model = makeBrailleWord(letters, tone, cap)
                        for i in range(length):
                            if model[i] != allChar[i]:
                                answer += 1
                                break
                    

                    print(answer)

                    2 phản hồi

                    • 0
                      danhnoname    3:08 p.m. 11 Tháng 8, 2023

                      hao v :v