YTU OJ C# 1636: FatMouse‘ Trade

YTU OJ C# 1636: FatMouse’ Trade

在这里插入图片描述

using System;
class Program
{
    
    
    static void Main(String[] agrs)
    {
    
    
        string num;
        string[] str;
        var M = 0;
        var N = 0;
        method method = new method();
        while (String.IsNullOrEmpty(num = Console.ReadLine()) == false)
        {
    
    
            str = num.Split(' ');
            bool x = int.TryParse(str[0], out M);
            bool y = int.TryParse(str[1], out N);
            if (M == -1 && N == -1)//判断上一个用例是否是最后一个
                break;
            string[] InFJ = new string[N];//用来存放用例
            for (var i=0;i<N;i++ )
            {
    
    
                InFJ[i] = Console.ReadLine();
            }
            method.printf(InFJ,M,N);
        }
    }
}
class method
{
    
    
    public void printf(string[] str,int M,int N)
    {
    
    
        var catFu = M;
        var jihao = 0;
        string[] str1;
        double max=0;
        double[,] num = new double[N,2];
        double[] bifen = new double[N];
        double fu = 0;
        for (var i=0;i<N;i++)
        {
    
    //把string型分割后转换为double类型并存入二维数组;
            str1 = str[i].Split(' ');
            bool x = double.TryParse(str1[0], out num[i,0]);
            bool y = double.TryParse(str1[1], out num[i,1]);
        }
        for(var i=0;i<N;i++)
        {
    
    //计算每行用例的性价比分数;
            bifen[i] = (num[i, 0] / num[i, 1]);
        }
        while (catFu > 0)
        {
    
    //猫粮不高于0则结束
            for (var i = 0; i < N; i++)
            {
    
    //找出性价比分数最高的房间并标记;
                if (bifen[i] > max)
                {
    
    
                    max = bifen[i];
                    jihao = i;
                }
            }
            if (catFu > num[jihao, 1] && catFu > 0)
            {
    
    
                catFu = (int)(catFu - num[jihao, 1]);
                fu = fu + num[jihao,0];
            }
            else if (catFu < num[jihao, 1] && catFu > 0)
            {
    
    
                fu = fu + (catFu/num[jihao,1])*num[jihao,0];
                catFu = 0;
            }
            bifen[jihao] = 0;//交易后清零房间分数;
            max = 0;
        }
        Console.WriteLine("{0:.000}",fu);

    }
}

猜你喜欢

转载自blog.csdn.net/henishu/article/details/115182592