結果
問題 | No.989 N×Mマス計算(K以上) |
ユーザー |
|
提出日時 | 2020-02-14 21:45:39 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 1,318 bytes |
コンパイル時間 | 11,303 ms |
コンパイル使用メモリ | 246,372 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-06 11:09:14 |
合計ジャッジ時間 | 12,481 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
package mainimport ("sort""bufio""fmt""os""strconv")var sc, wr = bufio.NewScanner(os.Stdin), bufio.NewWriter(os.Stdout)func scanString() string { sc.Scan(); return sc.Text() }func scanInt() int { a,_ := strconv.Atoi(scanString()); return a }func scanInt64() int64 { a,_ := strconv.ParseInt(scanString(),10,64); return a }func scanFloat64() float64 { a,_ := strconv.ParseFloat(scanString(),64); return a }func scanInts(n int) []int {res := make([]int, n); for i := 0; i < n; i++ { res[i] = scanInt() }; return res}func abs(a int) int { if a<0 { return -a }; return a }func min(a,b int) int { if a<b { return a }; return b }func max(a,b int) int { if a>b { return a }; return b }//•*¨*•.¸¸♪Main•*¨*•.¸¸♪( -ω-)ノ ( ・ω・)func main() {sc.Split(bufio.ScanWords)sc.Buffer(make([]byte, 10000), 1000000)n := scanInt()m := scanInt()k := scanInt()op := scanString()ans := 0b := scanInts(m)a := scanInts(n)sort.Ints(a)sort.Ints(b)// fmt.Println(b)for i := 0; i < n; i++ {var f func(j int) boolif op == "+" {f = func(j int) bool { return k <= b[j]+a[i] }} else {f = func(j int) bool { return k <= b[j]*a[i] }}index := sort.Search(len(b),f)ans += m - index// fmt.Println(a[i],index)}fmt.Println(ans)}