https://codeforces.com/contest/1282/problem/B2
질문의 의미 : P-위안, K 양보와 함께, 당신 n 개의 항목을 제공합니다. 구입하는 방법은 두 가지가 있습니다 :
1, 상품이 구매의 직접 비용 상품 가격
2, k 번째 구매 상품 만 k는 가장 비싼 지불합니다.
해결 방법 : 순서, 추구하는 접두사와 가능한만큼 욕심 사용 2.
긴 LL 긴 형식 정의를; int로 A [200,009]; INT의 ANS [200,009]; ) (대표 값 int { INT t 단계; scanf와 ( "%의 D", t); 반면 (t--) { INT N, P, K; scanf와 ( "% D % D % D", 및 N, P, K); memset 함수 (ANS, 0는 sizeof (ANS)); 위한 (INT 난 = 1; I <= N; I ++) { 는 scanf ( "%의 D ', A [I])를; } 정렬 (A + 1, A + N + 1); INT NUM = 0; 위한 (INT 난 = 1; I <= N; I ++) ANS [I] = ANS [I-1] + A [I]; 위한 (INT 나 케이 =; I <= N; I ++) ANS [I] = ANS [I - K] + A [I]; 위한 (INT 난 = 1; I <= N; I ++) 경우 (ANS [I] <= P) NUM = 1; } 0을 반환; }