下記のリンクの問題を解いていたのですが,15個あるケースの内3つがWAで不正解になってしまいます.数字の大きさ的には問題ないと思うのですが場合分けのところなどで間違っている個所がありましたら教えていただきたいです.
また,自分のやり方では全部の組み合わせを試して最小値を求めているのですが,もう少しうまいやり方がありそうな雰囲気がある問題だと思うので,なにか方法があれば教えていただきたいです.よろしくお願いします.
C
1#include<stdio.h> 2#include<stdlib.h> 3#include<string.h> 4#include<math.h> 5 6 7int main(void){ 8 9 int Aprice,Bprice,Cprice; 10 int numA,numB; 11 12 scanf("%d %d %d %d %d",&Aprice,&Bprice,&Cprice,&numA,&numB); 13 14 long ans=500000000; 15 int numMAX=0; 16 if(numA>numB) numMAX=numA; 17 else numMAX=numB; 18 19 long price; 20 21 for(int i=0;i<=numMAX;i++){ 22 if(numA>=i && numB>=i) price=Aprice*(numA-i)+Bprice*(numB-i)+Cprice*2*i; 23 else if(numA>=i && numB<i) price=Aprice*(numA-i)+Cprice*2*i; 24 else if(numA<i && numB>=i) price=Bprice*(numB-i)+Cprice*2*i; 25 26 if(price<ans) ans=price; 27 } 28 29 printf("%ld\n",ans); 30 31 return 0; 32} 33
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/24 11:01