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

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

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

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



Сообщение: 7
ссылка на сообщение  Отправлено: 31.01.22 15:49. Заголовок: Тип 26 №42, не сходится с ответом, помогите, что не так


 
f = open('42.txt')
s=[]
n = f.readline()
s=n.split()
S=int(s[1])
print(S)
Z=[]
A=[]
for line in f:
s1=[]
temp=line.split()
if temp[0]=='A':
A.append( [int(temp[1]),int(temp[2]) ])
else:
Z.append([int(temp[1]),int(temp[2])])
f.close()
A.sort()

# так как все изделия Z гарантированно купят, то проверку остатка денег не делаем

for i in range(len(Z)):# закупаем все изделия Z
S-=Z[ i][0]*Z[ i][1]

# Закупка изделий A коробками
kol_A=0
i=0
while S-A[ i][0]*A[ i][1]>=0:
S-=A[ i][0]*A[ i][1]
i+=1
kol_A+=A[ i][1]
# Закупка изделий A поштучно
j=0
while j<i and S-A[ i][0]>=0:
S-=A[ i][0]
kol_A+=1
j+=1
print(kol_A,S)

Ответ 7387 111, на сайте 7354 111

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


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




Сообщение: 3261
ссылка на сообщение  Отправлено: 01.02.22 14:07. Заголовок: Проверьте, как работ..


Проверьте, как работает ваша программа на тестовом примере из условия.

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



Сообщение: 11
ссылка на сообщение  Отправлено: 02.02.22 09:45. Заголовок: Исправила, для приме..


Исправила, для примера теперь работает верно, ответ для исходного файла по прежнему 7387 111, а на сайте 7354 111
 
f = open('42.txt')
s=[]
n = f.readline()
s=n.split()
S=int(s[1])
print(S)
Z=[]
A=[]
for line in f:
s1=[]
temp=line.split()
if temp[0]=='A':
A.append( [int(temp[1]),int(temp[2]) ])
else:
Z.append([int(temp[1]),int(temp[2])])
f.close()
A.sort( key = lambda x: (x[0], x[1]) )
print(A)
# так как все изделия Z гарантированно купят, то проверку остатка денег не делаем

for i in range(len(Z)):# закупаем все изделия Z
S-=Z[ i][0]*Z[ i][1]

# Закупка изделий A коробками
kol_A=0
i=0
while S-A[ i][0]*A[ i][1]>=0:
S-=A[ i][0]*A[ i][1]
i+=1
kol_A+=A[ i][1]
print(S)
# Закупка изделий A поштучно

while S-A[ i][0]>=0:
S-=A[ i][0]
kol_A+=1
print(kol_A,S)



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





Сообщение: 30
ссылка на сообщение  Отправлено: 02.02.22 13:23. Заголовок: f = open(r"C: ..


f = open(r"C:\Users\nickolas\Downloads\26-42.txt") 
s = []
n = f.readline()
s = n.split()
S = int(s[1])
print(S)
Z = []
A = []
for line in f:
s1 = []
temp = line.split()
if temp[0] == 'A':
A.append([int(temp[1]), int(temp[2])])
else:
Z.append([int(temp[1]), int(temp[2])])
f.close()
A.sort(key=lambda x: x[0])
print(A)
# так как все изделия Z гарантированно купят, то проверку остатка денег не делаем

for i in range(len(Z)): # закупаем все изделия Z
S -= Z[0] * Z[1]

kol_A = 0
ij = 0
while S - A[ij][0] >= 0:
S -= A[ij][0]
A[ij][1] -= 1
if A[ij][1] == 0:
ij += 1
kol_A += 1
print(kol_A, S)



Если убрать закупку партиями, то ответ сходится.

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





Сообщение: 31
ссылка на сообщение  Отправлено: 02.02.22 13:26. Заголовок: Нашел вашу ошибку. z..


Нашел вашу ошибку.

 цитата:
while S-A[ i][0]*A[ i][1]>=0:  
S-=A[ i][0]*A[ i][1]
i+=1
kol_A+=A[ i][1]



Вы увеличиваете i перед прибавлением к ответу, а надо, очевидно, после.

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



Сообщение: 13
ссылка на сообщение  Отправлено: 02.02.22 14:59. Заголовок: Спасибо большое!!!!!..


Спасибо большое!!!!!!

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

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