package main import ( "bufio" "fmt" "os" "strconv" ) func main() { // Scan開始前にSplitを設定しないとPanicになるため、ここに移動 s.Split(bufio.ScanWords) n := nextInt() var p [2000]float64 var q [2000]float64 for i := 0; i < n; i++ { p[i] = float64(nextInt()) q[i] = float64(nextInt()) } ans := 0.0 for t := 0; t < 50000; t++ { best := -1 bestp := -1.0 for i := 0; i < n; i++ { findp := p[i] * q[i] if findp > bestp { bestp = findp best = i } } ans += p[best] * (q[best] / 100.0) * (float64(t) + 1.0) p[best] *= (100 - q[best]) / 100 } fmt.Println(ans / 1000) } var s = bufio.NewScanner(os.Stdin) func next() string { // s.Split(bufio.ScanWords) // 削除: Scan後に呼ぶとPanicになるため s.Scan() return s.Text() } func nextLine() string { // s.Split(bufio.ScanLines) // 削除: 同上 s.Scan() return s.Text() } func nextInt() int { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return i } func nextLong() int64 { i, e := strconv.ParseInt(next(), 10, 64) if e != nil { panic(e) } return i }