0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 1

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

07.02.2023, 22:28. Показов 892. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru