utils.go 850 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "bufio"
  4. "strconv"
  5. "strings"
  6. )
  7. // Pair ...
  8. type Pair struct {
  9. _1 int
  10. _2 int
  11. }
  12. // ReadInt ...
  13. func ReadInt(s *bufio.Scanner) int {
  14. s.Scan()
  15. i, _ := strconv.ParseInt(s.Text(), 10, 32)
  16. return int(i)
  17. }
  18. // ReadInt64 ...
  19. func ReadInt64(s *bufio.Scanner) int64 {
  20. s.Scan()
  21. i, _ := strconv.ParseInt(s.Text(), 10, 64)
  22. return i
  23. }
  24. // ReadInts ...
  25. func ReadInts(s *bufio.Scanner) []int {
  26. s.Scan()
  27. strs := strings.Split(s.Text(), " ")
  28. nums := make([]int, len(strs))
  29. for i, str := range strs {
  30. num, _ := strconv.ParseInt(str, 10, 32)
  31. nums[i] = int(num)
  32. }
  33. return nums
  34. }
  35. // ReadInt64s ...
  36. func ReadInt64s(s *bufio.Scanner) []int64 {
  37. s.Scan()
  38. strs := strings.Split(s.Text(), " ")
  39. nums := make([]int64, len(strs))
  40. for i, str := range strs {
  41. num, _ := strconv.ParseInt(str, 10, 64)
  42. nums[i] = num
  43. }
  44. return nums
  45. }