質問するログイン新規登録

質問編集履歴

1

正解になったコードを追加しました

2020/04/05 02:31

投稿

marumarumarune
marumarumarune

スコア6

title CHANGED
File without changes
body CHANGED
@@ -28,4 +28,33 @@
28
28
  echo 'No';
29
29
  }
30
30
 
31
- ```
31
+ ```
32
+ 追記
33
+ 以下のコードを書くと正解できました。
34
+ ```php
35
+ <?php
36
+
37
+ list($n, $m) = explode(' ', fgets(STDIN));
38
+ $a = explode(' ', fgets(STDIN));
39
+ rsort($a);
40
+ $count = 0;
41
+
42
+ //変更点1:全体の1/4Mを関数にまとめる。
43
+ $t = array_sum($a)/(4*$m);
44
+
45
+ //変更点2: $mを$nに
46
+ for ($i=0; $i<$n ; $i++) {
47
+ // code...
48
+ if ($a[$i] >= $t) {
49
+ // code...
50
+ $count ++;
51
+
52
+ }
53
+ }
54
+ if($count >= $m){
55
+ echo 'Yes';
56
+ }else{
57
+ echo 'No';
58
+ }
59
+ ```
60
+ M個を選べるかどうか知りたいだけなので、$aを昇順にソートしてしまえば、for文の条件をわざわざ$nに変える必要はないと思うのですが、なぜでしょう...