Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 1

На 12 тесте выдает "Warning Answer"

07.02.2023, 22:28. Показов 890. Ответов 1

Студворк — интернет-сервис помощи студентам
Задача: B. Посадка на самолет - https://contest.yandex.ru/cont... AriD4xq20f

Вот мой код:

Python
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
rows_count = int(input())
 
lefts = []
rights = []
 
left_alpha = ['A', 'B', 'C']
right_alpha = ['D', 'E', 'F']
 
objects = {
    'left': lefts,
    'right': rights,
    'lalpha': left_alpha,
    'ralpha': right_alpha
}
 
for i in range(rows_count):
    left, right = input().split('_')
    lefts.append(left)
    rights.append(right)
 
groups_count = int(input())
 
passengers = []
 
for i in range(groups_count):
    group = input().split()
    passengers.append(group)
 
for p in passengers:
    find = False
    count = int(p[0])
    s = p[1]
    req = p[2]
 
    side = objects[s]
    mirror_mode = False
    if s == 'left' and req == 'aisle' or s == 'right' and req == 'window':
        mirror_mode = True
 
    if s == 'left':
        alphas = objects['lalpha']
    else:
        alphas = objects['ralpha']
 
    for row_num in range(len(side)):
        row = side[row_num][::-1] if mirror_mode else side[row_num]
 
        needed_part = row[0: count]
 
        if '#' in needed_part:
            continue
 
        show_row = len(needed_part) * 'X' + row[count:]
        change_row = len(needed_part) * '#' + row[count:]
 
        if mirror_mode:
            show_row = show_row[::-1]
            change_row = change_row[::-1]
 
        side[row_num] = show_row
 
        places = []
        use_alphas = alphas[::-1] if mirror_mode else alphas
        for i in range(len(needed_part)):
            places.append(f'{row_num+1}{use_alphas[i]}')
        places.sort(key=lambda el: el[1])
        places = ' '.join(places)
        text = f'Passengers can take seats: {places}'
        print(text)
        for i in range(rows_count):
            l, r = lefts[i], rights[i]
            output_s = '_'.join([l, r])
            print(output_s)
        side[row_num] = change_row
        find = True
        break
 
    if not find:
        print('Cannot fulfill passengers requirements')
На 12 тесте выдает "Warning Answer". Я не могу понять в чем проблема! Буду очень благодарен за ответ!

Добавлено через 1 час 7 минут
Я смог понять в чем проблема! 66 строка в сортировке el[-1], а не el[1] )))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2023, 22:28
Ответы с готовыми решениями:

Почему Wrong answer на 6 тесте задача 57 acmp?
Подскажите пожалуйста почему в задаче 57 на 6 тесте Wrong answer? Условие на картинке package com.task57; import...

На Timus Online Judge выдает wrong answer
На Timus Online Judge выдает wrong answer 10, перебрал уже кучу примеров и везде ответ сходится, на ++ сайт принял без проблем. В чем может...

При тесте оперативная память выдает ошибку
Здравствуйте. Прикупил себе новый процессор AMD FX 8350. Поставил я его, значит, в свой пк, решил поиграть во что нибудь.Через несколько...

1
207 / 58 / 19
Регистрация: 18.02.2018
Сообщений: 258
10.02.2023, 05:46
Ещё можно представить ряды в виде двух списков бит, а группу пассажиров -- в виде битовой маски

Python
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
SIDE_LEFT = 0
SIDE_RIGHT = 1
SIDE_SIZE = 3
 
def main ():
    def varslice (x):
        return slice(x * SIDE_SIZE, x * SIDE_SIZE + SIDE_SIZE)
 
    def show_places (places, n, j, indices, mside):
        def mark_indices (place, side, i, j=j, indices=indices, mside=mside):
            if indices != None and i == j and idx in indices \
                    and side == mside:
                print('X', end='')
            elif place == '1':
                print('#', end='')
            elif place == '0':
                print('.', end='')
 
        for i in range(n):
            for idx, place in enumerate(places[SIDE_LEFT][varslice(i)]):
                mark_indices(place, SIDE_LEFT, i)
            print('_', end='')
            for idx, place in enumerate(places[SIDE_RIGHT][varslice(i)]):
                mark_indices(place, SIDE_RIGHT, i)
            print('')
 
    n = 0
    m = 0
    places =[list(), list()]
 
    with open('input.txt', 'r') as f:
        n = int(f.readline())
        assert 1 <= n <= 100
        for i in range(n):
            buf = f.readline()
            side = SIDE_LEFT
            for c in buf:
                if c == '#':
                    places[side].append('1')
                elif c == '.':
                    places[side].append('0')
                elif c == '_':
                    side = SIDE_RIGHT
        m = int(f.readline())
        assert 1 <= m <= 100
        for i in range(m):
            buf = f.readline().split()
            pq = int(buf[0])
            side = SIDE_LEFT
            if buf[1] == 'right':
                side = SIDE_RIGHT
            demand = buf[2]
            mask = int('1' * pq, 2)
            if (side == SIDE_RIGHT) != (demand == 'window'):
                mask <<= SIDE_SIZE - pq
            for j in range(n):
                v = int(''.join(places[side][varslice(j)]), 2)
                expected = v | mask
                if v ^ mask == expected:
                    print('Passengers can take seats: ', end='')
                    indices = [idx for idx, place
                        in enumerate(format(mask, '3b')) if place == '1']
                    for k in range(pq):
                        c = ord('A') + indices[k]
                        if side == SIDE_RIGHT:
                            c += SIDE_SIZE
                        print('%d%c' %(j + 1, c), end='')
                        if k != pq - 1:
                            print(' ', end='')
                        places[side][SIDE_SIZE * j + indices[k]] = '1'
                    print('')
                    show_places(places, n, j, indices, side)
                    break
            else:
                print('Cannot fulfill passengers requirements')
 
if __name__ == '__main__':
    main()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2023, 05:46
Помогаю со студенческими работами здесь

Linx выдает ошибку при тесте i7 6700k
Здравствуйте, мой процессор не проходит леникс, когда первый раз запустил прошел всего 2 минуту потом выдал ошибку, сейчас прошел 12минут и...

Получить точное значение частного А/В для двух натуральных чисел A и B (выдаёт ошибку на 7 тесте)
Требуется получить точное значение частного А/В для двух натуральных чисел A и B. Входные данные В единственной строке входного...

Pycharm и PyQT5 выдает warning
Приветствую! Товарищи, помогите разобраться с одной проблемкой... После установки pyqt5 создавал графические приложения и во время...

В борланде: работает но выдает Warning.
Доброе время суток. Во время компеляций программы вылетает следующее: &quot;Warning name.cpp 218: 'turn' is assigned a value that is never...

проблема: задача n550 на acmp. НА 6 тесте выдает ошибку с надписью Presentation error - прошу обьяснить
Условие: День программиста отмечается в 255-й день года (при этом 1 января считается нулевым днем). Требуется написать программу, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru