oj1009 猫鼠交易

不难分析,但要注意一些特殊情况:

1、m=0 or -1,能要输入n组数据

2、n=0 or -1,不能再输入数据

3、猫粮 f[i]=0,不用pay,但能得到全部鼠粮,并且数量越多越先交易

4、鼠粮j[i]=0,不交易

题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1009/

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		double m;
		int n;
		double j[],f[],d[];
		double sum;
		double temd,temj,temf;
		while(cin.hasNext()){
			m= cin.nextDouble();
			n= cin.nextInt();
			if(m==-1&&n==-1){
				break;
			}
			sum=0;
			if(n<=0){
				System.out.println(String.format("%.3f",sum));
				continue;
			}
			j=new double[n];
			f=new double[n];
			d=new double[n];
			for(int i=0;i0;i++){
				if(j[i]==0){
					continue;
				}
				if(m>=f[i]){
					if(f[i]>0){
						m-=f[i];
					}
					sum+=j[i];
				}else{
					sum+=m*(j[i]/f[i]);
					m=0;
				}
			}
			System.out.println(String.format("%.3f",sum));
		}
	}
}

觉得不错,点个赞呗!

你可能感兴趣的:(oj1009 猫鼠交易)