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

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

쇼핑 열풍

시간 제한1초메모리 제한512 MB

요약
n개 상품의 가격과 할인율 q가 주어질 때, 3개 이상을 한 번에 사면 가장 싼 상품이 무료라는 조건에서 모든 상품을 사는 최소 비용을 구한다.
난이도

보통10점 중 5점

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

문제

Heidi는 큰 상점에 있다. 그녀는 nn개의 물건을 사고 싶어 한다.

오늘은 그녀의 운이 좋은 날이다. 상점에서 특별 세일을 한다. 고객은 구매할 때마다 다음 두 가지 프로모션 중 하나를 받는다.

  1. 33개 이상의 물건을 함께 살 때, 가장 싼 물건 하나가 무료이다.
  2. 33개 미만의 물건을 함께 살 때, 구매 금액에서 q%q\% 할인을 받는다.

Heidi는 쇼핑 목록에 있는 nn개의 물건을 각각 정확히 한 번씩 사고 싶어 한다. 그녀는 임의의 횟수만큼 구매할 수 있다. 각 구매마다 해당하는 프로모션이 적용된다.

nn개의 물건을 모두 사기 위해 Heidi가 지불해야 하는 최소 총 금액은 얼마인가?

입력

첫 번째 줄에는 두 개의 정수 nn (1≤n≤100 0001 \le n \le 100\,000)과 qq (0≤q≤1000 \le q \le 100)가 공백으로 구분되어 주어진다. nn은 Heidi가 사고 싶어 하는 물건의 개수이고, qq는 33개 미만의 물건을 구매할 때 받는 할인율이다.

다음 줄에는 nn개의 정수 p_1,…,p_np\_1, \dots, p\_n이 공백으로 구분되어 주어진다. 이는 물건의 가격이다 (100≤p_i≤100 000100 \le p\_i \le 100\,000, 1≤i≤n1 \le i \le n).

또한 각 p_ip\_i는 항상 100100으로 나누어떨어진다. 따라서 각 구매의 할인된 가격은 항상 정수이다.

출력

nn개의 물건을 모두 사기 위해 Heidi가 지불해야 하는 최소 총 금액을 정수 하나로 출력한다.

힌트

먼저 Heidi는 200200인 물건 세 개를 한 번에 사서 400400을 낸다 (하나는 무료로 받는다). 그다음 300300인 물건 세 개를 600600에 살 수 있다 (역시 하나는 무료이다). 마지막으로 남은 물건 하나(100100)를 10%10\% 할인받아 살 수 있다.

두 번째 예제에서 Heidi가 세 물건을 한 번에 사면 100100의 할인을 받는다. 그러나 각 물건을 따로 사면 할인은 (1000+500+100)⋅20/100=320(1000 + 500 + 100) \cdot 20 / 100 = 320이 된다.

예제3

  1. 예제 1

    입력
    7 10
    300 200 200 300 100 300 200
    
    예상 출력
    1090
    
  2. 예제 2

    입력
    3 20
    1000 500 100
    
    예상 출력
    1280
    
  3. 예제 3

    입력
    4 0
    200 100 300 200
    
    예상 출력
    600