AtCoder Beginner Contest 085

公開日:2019-07-10
最終更新:2019-07-10

問題

日本でよく使われる紙幣は、10000 円札、5000 円札、1000 円札です。以下、「お札」とはこれらのみを指します。

青橋くんが言うには、彼が祖父から受け取ったお年玉袋にはお札が N 枚入っていて、合計で Y 円だったそうですが、嘘かもしれません。このような状況がありうるか判定し、ありうる場合はお年玉袋の中身の候補を一つ見つけてください。なお、彼の祖父は十分裕福であり、お年玉袋は十分大きかったものとします。

最初書いたコード

N,Y=map(int,input().split())  

L=[[h,i,j]for h in range(N+1) for i in range(N+1) for j in range(N+1) if (h+i+j)==N and h*1000+i*5000+j*10000==Y ]  

if len(L)>0:  
  print(L[0][0],end=" ")  
  print(L[0][1],end=" ")    
  print(L[0][2])  
else:  
  print("-1 -1 -1")  

結果はTLEだった。
for3重はやはり無理だったか。
そこでj=N-h-iであることに注目してコードを書き直した。

forを一つ減らしたコード

N,Y=map(int,input().split())  

L=[[h,i,N-h-i]for h in range(N+1) for i in range(N+1) if h*1000+i*5000+(N-h-i)*10000==Y and (N-h-i)>=0]  

if len(L)>0:  
  print(L[0][2],end=" ")  
  print(L[0][1],end=" ")    
  print(L[0][0])  
else:  
  print("-1 -1 -1")  
記事が少しでもいいなと思ったらクラップを送ってみよう!
11
+1
aocoryの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする