multiple sequence\textbf{multiple}\text{ sequence}

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

요약
각 정수가 $c_i$개씩 있는 $M$가지 종류에서 $N$개를 골라 앞 항이 다음 항의 약수가 되도록 하는 수열의 최대 합을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

MM가지 종류의 양의 정수가 주어진다. 그중 ii번째 정수 x_ix\_i는 c_ic\_i개 있다. 이 정수들 중 NN개를 선택하여 다음 조건을 만족하도록 만들 수 있는 길이가 NN인 수열 AA의 합의 최댓값을 구하여라.

  • A_j+1A\_{j + 1}는 A_jA\_j의 배수이다. (1≤j<N)(1 \le j \lt N)

입력

첫째 줄에 수열 AA의 길이 NN, 양의 정수의 종류 MM이 공백으로 구분되어 주어진다. (1≤N,M≤500)(1 \le N, M \le 500)

둘째 줄부터 MM개의 줄에 걸쳐 각 정수의 정보가 주어진다. 그중 ii번째 줄은 양의 정수 x_ix\_i, c_ic\_i가 공백으로 구분되어 주어진다. 주어지는 모든 x_ix\_i는 서로 다르다. (1≤x_i,c_i≤109)(1 \le x\_i, c\_i \le 10^9)

출력

수열 AA의 합의 최댓값을 출력한다. 만약 수열 AA가 존재하지 않는다면 -1을 대신 출력한다.

예제3

  1. 예제 1

    입력
    4 5
    12 1
    8 2
    1 4
    6 3
    2 4
    
    예상 출력
    30
    
  2. 예제 2

    입력
    3 3
    81 81
    9 9
    3 3
    
    예상 출력
    243
    
  3. 예제 3

    입력
    9 5
    2 1
    3 6
    5 3
    7 8
    11 3
    
    예상 출력
    -1