前提・実現したい
こちらのサイトで見つけた、atcoderABC 105 Bを解いてみたのですがWAになりその原因が分かりません。
サイトをよく観察して別のアプローチで書き直したらACを得られたのですが、先のコードでなぜWAになるのかは分からずじまいです。
書き方を変えたのはfor文内の全探索です。
###問題文
ABC 洋菓子店では, 1個 4ドルのケーキと 1個 7ドルのドーナツが売られている.
このとき, 合計金額が Nドルとなる買い方はあるか, 判定せよ.
ただし, 同じ商品を二個以上買っても良く, 買わない商品があっても良いものとする.
該当のソースコード
WAのコード(c++)
#include <bits/stdc++.h> using namespace std; int main(){ int N; cin >> N; int c=4,d=7; string ans="No"; //ここから異なる for(int i=0;i<26;i++){ c *= i; for(int j=0;j<=16;j++){ d *= j; if((c+d)==N){ ans="Yes"; } } } cout << ans << endl; return 0; }
ACのコード
#include <bits/stdc++.h> using namespace std; int main(){ int N; cin >> N; int c=4,d=7; string ans="No"; //ここから異なる for(int i=0;i<26;i++){ for(int j=0;j<=16;j++){ if((c*i+d*j)==N){ ans="Yes"; } } } cout << ans << endl; return 0; }
###補足情報
正答率
列2 | ケース名 |
---|---|
in01.txt | AC |
in02.txt | AC |
in03.txt | WA |
in04.txt | AC |
in05.txt | AC |
in06.txt | WA |
in07.txt | WA |
in08.txt | AC |
in09.txt | AC |
in010.txt | WA |
in011.txt | AC |
in012.txt | WA |
in013.txt | WA |
in014.txt | AC |
in015.txt | WA |
in016.txt | WA |
in017.txt | WA |
in018.txt | WA |
in019.txt | WA |
in020.txt | WA |
sample_01.txt | WA |
sample_02.txt | WA |
sample_03.txt | AC |
###最後に
どちらも全ての通りをたどっている様に見えるですが、なぜWAを吐かれるのか分かりません。
なにか原因が分かる方はご回答いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 14:01