На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 60
ссылка на сообщение  Отправлено: 11.04.23 20:31. Заголовок: 27 2686 Ошибка в ответе


Верным ответом будет 6783 и 20191039. Ваш ответ: 6495 20191039

def F(n, d): 
r = ''
alf = 'ABCDEF'

while n > 0:

if n % d > 9:
r = alf[ n % d - 10] + r

else:
r = str(n % d) + r
n = n // d

return r

s = open('27-26b.txt')
l = [ ]
dif = [ ]
SUM = 0
#создание списка
for k in s:
l.append(k.split())
#минимальная сумма без учёта условий
for i in range(1, len(l)):
SUM += min(int(l[ i][ 0]), int(l[ i][ 1]))
#разности между числами
for i in range(1, len(l)):

if l[ i][ 0] != l[ i][ 1]:
dif.append(abs(int(l[ i][ 0]) - int(l[ i][ 1])))

dif.sort()
#заменяю числа в полученной сумме, подменяя пары чисел, пока не получу число в 16 системе с окончанием на F
for i in dif:

if F(SUM + i, 16)[ -1] == 'F':
print(SUM + i)
break


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]







Сообщение: 2
ссылка на сообщение  Отправлено: 12.04.23 19:48. Заголовок: Решал сам, впрочем п..


Решал сам, впрочем похожее решние получилось, однако ответы точно такие же. Сойдемся на том, что ошибка в ответах

 
file = open('27-26b.txt')
n = int(file.readline())
differences = []
min_sum = 0
for i in range(n):
a, b = map(int, file.readline().split())
differences.append(abs(a-b))
min_sum += min(a, b)
differences.sort()
new_sum = 0
print(hex(6783))
for i in differences:
new_sum = min_sum + i
if hex(new_sum)[-1] == 'f':
print(new_sum)
break


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 18
ссылка на сообщение  Отправлено: 13.04.23 00:16. Заголовок: Ответ к задаче прави..


Ответ к задаче правильный.
Вы рассматриваете только одно число (new_sum = min_sum + i), а на самом деле их несколько.
Сумма минимального числа и нескольких разниц даст правильный ответ.

Программа делает, не то что хочет программист, а то что он ей приказал делать. Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 63
ссылка на сообщение  Отправлено: 13.04.23 18:20. Заголовок: Aleksey6819 пишет: ..


Aleksey6819 пишет:

 цитата:
Сумма минимального числа и нескольких разниц даст правильный ответ.

Вы правы. У меня получился ответ, спасибо!

def F(n, d): 
r = ''
alf = 'ABCDEF'

while n > 0:

if n % d > 9:
r = alf[ n % d - 10] + r

else:
r = str(n % d) + r
n = n // d

return r

with open('27-26a.txt') as file:
l = file.read().splitlines()
SUM = 0
dif = []
n = [ ]

for i in range(1, len(l)):
a, b = map(int, l[ i].split())
dif.append(abs(a - b))
SUM += min(a, b)

dif.sort()
dif = set(dif)
dif = list(dif)

for i in range(len(dif) - 1):

if F(SUM + dif[ i], 16)[ -1] == 'F':
n.append(SUM + dif[ i])

for i in range((len(dif))):

for p in range((len(dif))):

if p != i and F(SUM + dif[ i] + dif[ p], 16)[ -1] == 'F':
n.append(SUM + dif[ i] + dif[ p])

for i in range(int((len(dif) * 20) ** 0.5)):

for p in range(int((len(dif) * 20) ** 0.5)):

for j in range(int((len(dif) * 20) ** 0.5)):

if p != i and i != j and p != j and \
F(SUM + dif[ i] + dif[ p] + dif[ j], 16)[ -1] == 'F':
n.append(SUM + dif[ i] + dif[ p] + dif[ j])

print(min(n))


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 123
ссылка на сообщение  Отправлено: 08.07.23 12:09. Заголовок: f=open('d:/1/27..


 f=open('d:/1/27-26b.txt') 
n=int(f.readline())
s=[list(map(int,c.split())) for c in f.readlines()]

fl,k=True,[10**10]*16
for c in s:
l=[]
for d in k:
if d<10**10 or fl:
l.append((d<10**10)*d+c[0])
l.append((d<10**10)*d+c[1])
fl,k=False,[]
for i in range(16):
a=[c for c in l if c%16==i]
if a: k.append(min(a))
print(k[-1])


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1383
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет