3183-2020-Java-国赛-4-1

看题看半天看不懂,原来它这个包装数量是指能装的商品数量
啊,这个价格指的不是单个包装的价格,而是包装里包含商品的总价

100 80 200 150

意思是,第一种100个80块,第二种200个150块

有三种可能:
5 0:400-100=300
3 1:240+150-50=340
1 2:80+300-50=330

import java.io.*;
import java.util.StringTokenizer;

class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tokenizer = new StringTokenizer(reader.readLine());

        int num1 = Integer.parseInt(tokenizer.nextToken());
        int price1 = Integer.parseInt(tokenizer.nextToken());
        int num2 = Integer.parseInt(tokenizer.nextToken());
        int price2 = Integer.parseInt(tokenizer.nextToken());

        if(num1>500&&num2>500){
            System.out.print(-1);
            return;
        }
        int min1=0,min2=0;

        int sum=Integer.MAX_VALUE;

        int j,temp;

        for(int i = 0;i<=500/num1;i++){
            if((500-i*num1)%num2==0){
                j=(500-i*num1)/num2;
                temp=(i*price1+j*price2)-((i*price1+j*price2)/200)*50;
                if(temp<sum){
                    sum = temp;
                    min1=i;
                    min2=j;
                }
            }
        }

        if((min1+min2)>0) System.out.print(min1+" "+min2);
        else System.out.print(-1);
    }
}
posted @ 2022-11-07 18:40  YaosGHC  阅读(25)  评论(0)    收藏  举报