package main

func checkSubarraySum(nums []int, k int) bool {
	first_index_of := make(map[int]int)
	first_index_of[0] = -1

	remainder := 0
	for i, x := range nums {
		remainder = (remainder + x) % k

		j, seen := first_index_of[remainder]
		if seen {
			if i-j > 1 {
				return true
			}
		} else {
			first_index_of[remainder] = i
		}
	}

	return false
}