utils.go 908 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. // Pair64 ...
  13. type Pair64 struct {
  14. _1 int64
  15. _2 int64
  16. }
  17. // ReadInt ...
  18. func ReadInt(s *bufio.Scanner) int {
  19. s.Scan()
  20. i, _ := strconv.ParseInt(s.Text(), 10, 32)
  21. return int(i)
  22. }
  23. // ReadInt64 ...
  24. func ReadInt64(s *bufio.Scanner) int64 {
  25. s.Scan()
  26. i, _ := strconv.ParseInt(s.Text(), 10, 64)
  27. return i
  28. }
  29. // ReadInts ...
  30. func ReadInts(s *bufio.Scanner) []int {
  31. s.Scan()
  32. strs := strings.Split(s.Text(), " ")
  33. nums := make([]int, len(strs))
  34. for i, str := range strs {
  35. num, _ := strconv.ParseInt(str, 10, 32)
  36. nums[i] = int(num)
  37. }
  38. return nums
  39. }
  40. // ReadInt64s ...
  41. func ReadInt64s(s *bufio.Scanner) []int64 {
  42. s.Scan()
  43. strs := strings.Split(s.Text(), " ")
  44. nums := make([]int64, len(strs))
  45. for i, str := range strs {
  46. num, _ := strconv.ParseInt(str, 10, 64)
  47. nums[i] = num
  48. }
  49. return nums
  50. }