結果
| 問題 | 
                            No.1882 Areas of Triangle
                             | 
                    
| ユーザー | 
                             | 
                    
| 提出日時 | 2022-10-20 13:19:42 | 
| 言語 | Go  (1.23.4)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 31 ms / 2,000 ms | 
| コード長 | 794 bytes | 
| コンパイル時間 | 14,230 ms | 
| コンパイル使用メモリ | 242,132 KB | 
| 実行使用メモリ | 7,636 KB | 
| 最終ジャッジ日時 | 2024-06-30 06:20:15 | 
| 合計ジャッジ時間 | 16,111 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 5 | 
| other | AC * 24 | 
ソースコード
package main
import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
	"strings"
)
func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Buffer(make([]byte, 100000*11+2), 100000*11+2)
	sc.Scan()
	ss := strings.Fields(sc.Text())
	N, _ := strconv.Atoi(ss[0])
	K, _ := strconv.Atoi(ss[1])
	sc.Scan()
	tt := strings.Fields(sc.Text())
	A := make([]int, N)
	for i := 0; i < N; i++ {
		A[i], _ = strconv.Atoi(tt[i])
	}
	sort.Slice(A, func(i, j int) bool { return A[i] < A[j] })
	k1 := sort.Search(N, func(i int) bool { return A[i]*A[N-1] >= 2*K })
	// k2 := sort.Search(N, func(i int) bool { return A[i]*A[0] >= 2*K })
	// fmt.Fprintln(os.Stderr, k1, k2)
	count := 0
	for i := k1; i < N; i++ {
		k := sort.Search(N, func(j int) bool { return A[i]*A[j] >= 2*K })
		count += N - k
	}
	fmt.Println(count)
}