아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

K-요약

시간 제한0.5초메모리 제한64 MB

요약
주어진 구간 길이 K_i들에 대해 여러 K_i-요약이 있을 때 값이 유일하게 정해지는 원소의 개수를 구한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

길이가 NN인 정수 배열 xx가 있다. 이 배열의 KK-요약은 배열을 앞에서부터 길이 KK인 구간으로 자른 다음, 각 구간의 원소를 모두 더해서 만든 배열이다. NN이 KK로 나누어떨어지지 않으면 마지막 구간의 길이는 KK보다 짧다.

즉 KK-요약의 원소는 차례대로 x[1]+⋯+x[K]x[1] + \cdots + x[K], x[K+1]+⋯+x[2K]x[K+1] + \cdots + x[2K], 이런 식이고, x[N]x[N]이 들어가는 마지막 합만 항이 KK개보다 적을 수 있다. 예를 들어 원소가 13개인 배열의 5-요약은 원소가 3개다. 1번부터 5번까지의 합, 6번부터 10번까지의 합, 11번부터 13번까지의 합이다.

KK-요약 하나만으로는 원래 배열의 원소를 알아낼 수 없다. 하지만 서로 다른 여러 KK의 요약을 모두 알고 있으면 일부 원소는 값이 하나로 정해진다. 배열의 길이 NN과 K1,K2,…,KMK_1, K_2, \ldots, K_M이 주어진다. KiK_i-요약을 모두 알고 있을 때 원래 배열의 원소 중 값이 유일하게 정해지는 것이 몇 개인지 구하는 프로그램을 작성하시오. 그 개수는 요약에 적힌 값과 무관하다.

입력

첫째 줄에 배열의 길이 NN과 요약의 개수 MM이 주어진다. (3≤N≤1093 \le N \le 10^9, 1≤M≤101 \le M \le 10)

둘째 줄에 서로 다른 정수 K1,K2,…,KMK_1, K_2, \ldots, K_M이 주어진다. (2≤Ki<N2 \le K_i < N)

출력

값이 유일하게 정해지는 원소의 개수를 출력한다.

힌트

첫 번째 예제에서는 x[3]x[3] 하나만 알아낼 수 있다.

두 번째 예제에서는 x[3]x[3]과 x[4]x[4]를 알아낼 수 있다.

예제3

  1. 예제 1

    입력
    3 1
    2
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6 2
    2 3
    
    예상 출력
    2
    
  3. 예제 3

    입력
    123456789 3
    5 6 9
    
    예상 출력
    10973937