1231: ykc買零食

-rainbow-發表於2018-11-11

1231: ykc買零食

時間限制: 1 Sec  記憶體限制: 128 MB

題目描述

ykc的班級準備舉行班級聚會,而身為生活委員的ykc要為此準備好零食,這天,ykc來到了學校的新起點超市,在轉了3個小時候,ykc決定買以下所有的n種零食,其中每種零食的價格可能不一樣,而剛好超市有活動,每買m種零食,就可以任選一種不超過k元的零食並免費贈送,而ykc想盡可能的省錢,求ykc的最小花費

 

輸入

輸入包含多組資料,以EOF結束,

每組首先輸入三個正整數,n,m,k,其中(n,m,k<100)

後輸入n個數表示每種零食的價格ai(ai<1000)

 

輸出

輸出一個正整數,表示最小花費

 

樣例輸入

4 3 2
1 2 3 4
7 3 8
1 2 3 4 5 6 7

 

樣例輸出

8
21
import java.util.ArrayList;
import java.util.Scanner;
 
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<String> w = new ArrayList<String>();
         
        while(sc.hasNext()) {
            int n = sc.nextInt();
            int m = sc.nextInt();
            int k = sc.nextInt();
             
            int fif = 0;
            int num = n/(m+1)==0?0:n/(m+1);
            int minmax[] = new int[num];
            int a[] = new int[n];
            int state[] = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
                fif += a[i];
            }
            loop:for (int i = 0; i < minmax.length; i++) {
                int y = 0;
                while(state[y] == 1)
                    y++;
                for (int j = 1; j < a.length; j++) {
                    if(state[j] == 1)
                        continue;
                    if(a[y]>k) {
                        if(a[j]<=k)
                            y = j;
                    }else {
                        if(a[j]>a[y]&&a[j]<=k)
                            y = j;
                    }
                }
                if(a[y]>k) 
                    a[y] = 0;
                state[y] = 1;
                minmax[i] = y;
            }
            for (int j = 0; j < minmax.length; j++) {
                fif -= a[minmax[j]];
            }
            w.add(fif+"");
        }
        sc.close();
        for(String attribute : w) {
            System.out.println(attribute);
        }
    }
}
/**************************************************************
    Problem: 1231
    User: 20161514325
    Language: Java
    Result: 正確
    Time:245 ms
    Memory:13320 kb
****************************************************************/

 

相關文章