B - Japanese Cursed Doll
解説
髪の長さが 以上の人が 人以上になるのは、最初の長さが 番目に長い人の髪の長さが 以上になるとき。
番目の人の最初の長さを とすると、 が 以上の場合は を出力し、そうでない場合は を出力する。if
文で場合分しても良いが、max
関数を使うと簡潔に書ける。
C++はsort
関数の第三引数にgreater<int>()
を渡すと降順にソートできる。
提出コード
- Go
func main() {
var n, t, p int
scanIntVariables(&n, &t, &p)
L := readInts()
sort.Slice(L, func(i, j int) bool {
return L[i] > L[j]
})
writeLine(max(0, t-L[p-1]))
}
- C++
int main() {
int n, t, p; cin >> n >> t >> p;
vector<int> L(n); rep(i, 0, n) cin >> L[i];
sort(L.begin(), L.end(), greater<int>());
cout << max(0, t - L[p - 1]) << endl;
}