Sicily.1099. Packing Passengers(优先选择性价比高的飞机)

来源:互联网 发布:linux 启动jar包脚本 编辑:程序博客网 时间:2024/04/29 05:51
/* 1099. Packing Passengers(优先选择性价比高的飞机)   大意:给出两种飞机的价值和最大载客量以及需要载客的总数         求出A B飞机各需要多少架。   思路:优先取性价比高的飞机。如B性价比高的话就先从能取得B         最多的数量开始往下遍历找到合适的即停止 */#include<iostream>#include<stdlib.h>using namespace std;#define INF 1e+15long long passengerNum, costA, passengersA, costB, passengersB;bool cal(long long higerCap, long long &higherNum, long long lowerCap, long long &lowerNum){    if(higerCap == 0)       if(lowerCap == 0)          return false;       else {          if(passengerNum %lowerCap == 0){            lowerNum = passengerNum/lowerCap;             return true;                        }          else                        return  false;       }    else       if(lowerCap == 0)          if(passengerNum %higerCap == 0){            higherNum = passengerNum/higerCap;             return true;                        }          else                        return  false;    higherNum = passengerNum/higerCap;    long long leftCap = passengerNum - higherNum*higerCap;        while(leftCap % lowerCap!= 0){          if(higherNum > 0) {             higherNum--;          }          else              return false;          leftCap = passengerNum - higherNum*higerCap;           }    lowerNum = (passengerNum - higerCap*higherNum)/lowerCap;    return true;}int main(){    int testNum = 0;    while(cin >> passengerNum && passengerNum != 0){         cin >> costA >> passengersA >> costB >> passengersB;         double priceA = costA == 0 ? INF : (double)passengersA/(double)costA;         double priceB = costB == 0 ? INF : (double)passengersB/(double)costB;                   long long aNum, bNum;         bool ok = false;         if(priceA >= priceB){            ok = cal(passengersA, aNum, passengersB ,  bNum);                   }         else {            ok =cal(passengersB, bNum, passengersA ,  aNum);          }         testNum++;          if(ok){            cout << "Data set " << testNum << ": "<< aNum << " aircraft A, "<< bNum << " aircraft B" << endl;             }          else            cout << "Data set " << testNum << ": cannot be flown" << endl;    }    system("pause");    return 0;}


	
				
		
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴儿吃饱了吐奶怎么办 23天新生儿吐奶怎么办 婴儿吐奶舌苔白怎么办 宝宝吐奶酸臭味怎么办? 1周岁吐奶有酸味怎么办 十多天的宝宝吐奶怎么办 未满月婴儿吐奶怎么办 2个月宝宝溢奶怎么办 四岁宝宝说话结巴怎么办 小孩说话结巴打顿怎么办 2岁宝宝突然说话结巴怎么办 2岁宝宝突然结巴怎么办 幼儿舌头起泡牙龈出血怎么办 小孩长得太快怎么办 脑出血压着神经不会说话怎么办 四岁宝宝说话有点口吃怎么办 三岁宝宝有点口吃怎么办 3岁宝宝有点口吃怎么办 三岁宝宝说话有点口吃怎么办 六岁说话重复第一个字怎么办 宝贝烧到39.5度怎么办 宝贝39度不退烧怎么办 两岁多小儿突然变得口吃怎么办 百度两周岁宝宝口吃怎么办 2岁宝宝偶尔结巴怎么办 两岁宝宝说话磕巴怎么办 宝宝两岁结巴了怎么办 人多说话就紧张怎么办 小孩拉尿不叫人怎么办 2岁宝宝说话有点结巴怎么办 两岁半的宝宝说话结巴怎么办 2个月宝宝怕洗澡怎么办 2岁宝宝不喜欢喝奶粉怎么办 宝宝断奶不喜欢喝奶粉怎么办 宝宝不喜欢奶粉的味道怎么办 四个月宝宝不喜欢吃奶粉怎么办 四岁宝宝有口臭怎么办 4个月宝宝口臭怎么办 2岁宝宝有口臭是怎么办 两岁宝宝有口气怎么办 2岁宝宝口气重是什么原因怎么办