AOJ0227 Thanksgiving
問題リンク Thanksgiving
- 解法
野菜を値段でソートします。合計額をなるべく小さくしたいので、値段の高い野菜を割引の対象にしたいことになります。これは、袋に値段の高い順に貪欲に突っ込んでいくことで、高い野菜を割引対象にすることができます。
- ソース
import java.util.Arrays; import java.util.Scanner; //Thanksgiving public class AOJ0227 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int n = sc.nextInt(); int m = sc.nextInt(); if((n|m)==0)break; int[] a = new int[n]; int s = 0; for(int i=0;i<n;i++){ a[i] = sc.nextInt(); s+=a[i]; } Arrays.sort(a); int k = 0; for(int i=n-1;i>=0;i--){ k++; if(k%m==0)s-=a[i]; } System.out.println(s); } } }