设材料的长度为l,可以写成 l = 19x+23y+a,于是题目的意思就是当x,y取何值时,a的值最小。于是我们可以穷举出所有的a,打印最小值即可。
另外不难得出,x的取值范围为0到l//19,y的取值范围为0到l//23,而当剩下的材料小于0时,则取值不成立,于是可列出代码如下
l = int(input())
b = []
for x in range(l//19+1):
for y in range(l//23+1):
a = l-19*x-23*y
if a<0:
break
b.append((a,x,y))
res = min(b)
print(f"19米{res[1]}段,23米{res[2]}段,剩余{res[0]}米")