Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Помогите решить не проходит 51 тест, задача номер 1935, Посадка в самолет
1
  1  Молотов Владислав Ринатович, 28 июня 2024 г. 12:19:37
      решил проблема была в условиях вот правильный код:
a,b = map(int,input().split())
sp_o = list()
nezanato = 0
total = 0
flag = False

for i in range(a):

a = input()
for j in range(3):
if a[j] == 'X' and a[::-1][j] != 'X':
a = a[::-1]
a = a[:j] + a[j].replace('.', 'X') + a[j + 1:]
a = a[::-1]
total += 1

elif a[j] != 'X' and a[::-1][j] == 'X':
a = a[:j] + a[j].replace('.', 'X') + a[j + 1:]
total += 1
nezanato += a.count('.')
sp_o.append(a)


if b - total < 0 or (b - total) > nezanato or (b - total) % 2 != 0:
print('Impossible')


elif b - total == 0:
print(*sp_o,sep='\n')


elif b - total > 0 and nezanato >= (b - total) and (b - total) % 2 == 0:
k = b - total
total_1 = 0
for i in range(len(sp_o)):
if flag:
break
for j in range(3):
if sp_o[i][j] == '.':
new_str = sp_o[i]
new_str = new_str[::-1]
new_str = new_str[0:j] + 'X' + new_str[j + 1:]
new_str = new_str[::-1]
new_str = new_str[0:j] + 'X' + new_str[j + 1:]
total_1 += 2
sp_o[i] = new_str

if total_1 == k:
flag = True
break

print(*sp_o,sep='\n')
  2  Молотов Владислав Ринатович, 28 июня 2024 г. 11:26:44
      a,b = map(int,input().split())
sp_o = list()
nezanato = 0
total = 0
flag = False

for i in range(a):

a = input()
for j in range(3):
if a[j] == 'X' and a[::-1][j] != 'X':
a = a[::-1]
a = a[:j] + a[j].replace('.', 'X') + a[j + 1:]
a = a[::-1]
total += 1

elif a[j] != 'X' and a[::-1][j] == 'X':
a = a[:j] + a[j].replace('.', 'X') + a[j + 1:]
total += 1
nezanato += a.count('.')
sp_o.append(a)


if b - total < 0 or b > nezanato or (b - total) % 2 != 0:
print('Impossible')


elif b - total == 0:
print(*sp_o,sep='\n')


elif b - total > 0 and b <= nezanato and (b - total) % 2 == 0:
k = b - total
total_1 = 0
for i in range(len(sp_o)):
if flag:
break
for j in range(3):
if sp_o[i][j] == '.':
new_str = sp_o[i] # Work with the whole string, not just a character
new_str = new_str[::-1]
new_str = new_str[0:j] + 'X' + new_str[j + 1:]
new_str = new_str[::-1]
new_str = new_str[0:j] + 'X' + new_str[j + 1:]
total_1 += 2
sp_o[i] = new_str # Update the whole string in the list

if total_1 == k:
flag = True
break

print(*sp_o,sep='\n')
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru