12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package main
- import (
- "bufio"
- "fmt"
- "os"
- "strconv"
- "strings"
- )
- func main() {
- var input = bufio.NewScanner(os.Stdin)
- var output int
- var digits []int
- for input.Scan() {
- line := input.Text()
- digits = []int{}
- values := strings.Split(line, " ")
- for _, v := range values {
- d, _ := strconv.Atoi(v)
- digits = append(digits, d)
- }
- output = minArray(digits)
- fmt.Println(output)
- }
- }
- func minArray(numbers []int) int {
- var left, right = 0, len(numbers) - 1
- var mid int
- for left < right {
- mid = (left + right) / 2
- if numbers[right] > numbers[mid] {
- right = mid
- } else if numbers[right] < numbers[mid] {
- left = mid + 1
- } else {
- right--
- }
- }
- return numbers[left]
- }
|