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

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

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

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



Сообщение: 15
ссылка на сообщение  Отправлено: 29.04.21 08:39. Заголовок: Задание 27. (Апробация 27 апреля 2021)


Задание:
Решение:
  
f = open('27_B.txt')
n=int(f.readline())
c=[]
d=[]
g=[]
k=103
for i in range(n):
x1,x2,x3 =sorted((map(int,f.readline().split())))[::-1]
c.append(x1)
a=(x1-x2)
b=(x1-x3)
if a%k!=0 and b%k!=0:
d.append(min(a,b))
else:
if a%k!=0:
d.append(a)
if b%k!=0:
d.append(b)
s=sum(c)
print('Максимально возможная сумма -',s)
d=sorted(d)
if s%k!=0:
print('Максимально возможная сумма не кратная к-',s)
else:
for i in range(len(d)):
if (s-d[ i])%k!=0:
g.append((s-d[ i]))
print('Максимально возможная сумма не кратная к-',max(g))

Собственно вопрос - будет ли данное решение достаточным при любом другом наборе исходных данных?
Исходные файлы: [url=https://1drv.ms/t/s!ApKQsGxfHAHQgfYnbg0Mv7rk0QV0yg]https://1drv.ms/t/s!ApKQsGxfHAHQgfYnbg0Mv7rk0QV0yg[/url]
[url=https://1drv.ms/t/s!ApKQsGxfHAHQgfcnJm_x2jJMVUmW5A]https://1drv.ms/t/s!ApKQsGxfHAHQgfcnJm_x2jJMVUmW5A[/url]

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


Администратор




Сообщение: 2768
ссылка на сообщение  Отправлено: 29.04.21 11:03. Заголовок: daimon2006 пишет: i..


daimon2006 пишет:
 цитата:
 if a%k!=0 and b%k!=0:  
d.append(min(a,b))

Не ясен смысл этого оператора. Если обе разности делятся на k, то нет смысла их использовать.

Массивы не нужны. Вместо массива c можно просто считать сумму. Вместо массива d можно вести минимум (dmin). Если сумма s делится на k, то ответ s - dmin, и массив g тоже не нужен.
Посмотрите разбор задачи Р-00 в файле ege27.doc.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 7
ссылка на сообщение  Отправлено: 02.05.21 08:30. Заголовок: Для решения этой зад..


Для решения этой задачи достаточно выдвинуть одну Лемму:
Если максимально возможная сумма кратна k, то достаточно произвести одну замену, не кратную k и минимальную.

Если мы произвели одну замену, то последующие замены лишь будут уменьшать нашу разность в пустую. Также стоит заметить, если
такой замены нет, то сумма всегда кратна k для всех 2^n наборов, потому что sum == 0 (mod k) и замена во всех парах сравнима с нулём по модулю k <=> sum == 0 (mod k) для любого из 2^n наборов.

Программа:
 s = 0 
d = 10 ** 18
k = 103

for i in range(int(input())):
a, b, c = map(int, input().split())
a, b, c = max(a,b,c), (a + b + c) - (max(a, b, c) + min(a, b, c)), min(a, b, c)
s += a
if (a - b) % k != 0:
d = min(d, a - b)
if (a - c) % k != 0:
d = min(d, a - c)
if (s % k != 0):
print(s)
else:
print(s - d)


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

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