前提・実現したいこと
Atcorderの問題です。
掛け算の順番を変えるとエラーになるケースがあり、困惑しております。
どういった原因が考えらますでしょうか。
該当のソースコード
(1)AC× 28 すべて正答のコードです。
N,X = map(int,input().split()) s = 0 for i in range(N): v,p = map(int,input().split()) s += v*p ###(1-1) if s > X*100: ###(1-2) print(i+1) exit() print(-1)
(2)AC× 21、WA× 7 と一部が誤答になるケースです。
N,X = map(int,input().split()) s = 0 for i in range(N): v,p = map(int,input().split()) s += v*p*0.01 ###(2-1) if s > X: ###(2-2) print(i+1) exit() print(-1)
1-1,2と2-1,2は等価であるように思うのですが、なぜ異なる結果になるのでしょうか。
どうぞよろしくお願いいたします。
※ WA,AC の意味はこちらです。
WA (Wrong Answer) 誤答です。提出したプログラムの出力は正しくありません。
AC (Accepted) 正答です。運営が用意したテストを全てパスし、正しいプログラムであると判定されました。
試したこと
GoogleColabo,Atcorderコードテストにで、入力例1,2,3で検証。どちらのコードもすべてACでした。
#入力例1 2 15 200 5 350 3 #出力例1 2
#入力例2 2 10 200 5 350 3 #出力例2 2
#入力例3 3 1000000 1000 100 1000 100 1000 100 #出力例3 -1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/25 06:54