質問編集履歴

1

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

2020/04/05 02:31

投稿

marumarumarune
marumarumarune

スコア6

test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,61 @@
59
59
 
60
60
 
61
61
  ```
62
+
63
+ 追記
64
+
65
+ 以下のコードを書くと正解できました。
66
+
67
+ ```php
68
+
69
+ <?php
70
+
71
+
72
+
73
+ list($n, $m) = explode(' ', fgets(STDIN));
74
+
75
+ $a = explode(' ', fgets(STDIN));
76
+
77
+ rsort($a);
78
+
79
+ $count = 0;
80
+
81
+
82
+
83
+ //変更点1:全体の1/4Mを関数にまとめる。
84
+
85
+ $t = array_sum($a)/(4*$m);
86
+
87
+
88
+
89
+ //変更点2: $mを$nに
90
+
91
+ for ($i=0; $i<$n ; $i++) {
92
+
93
+ // code...
94
+
95
+ if ($a[$i] >= $t) {
96
+
97
+ // code...
98
+
99
+ $count ++;
100
+
101
+
102
+
103
+ }
104
+
105
+ }
106
+
107
+ if($count >= $m){
108
+
109
+ echo 'Yes';
110
+
111
+ }else{
112
+
113
+ echo 'No';
114
+
115
+ }
116
+
117
+ ```
118
+
119
+ M個を選べるかどうか知りたいだけなので、$aを昇順にソートしてしまえば、for文の条件をわざわざ$nに変える必要はないと思うのですが、なぜでしょう...