Sicily.1093. Air Express

#include <stdlib.h>
#include <iostream>
#include <stdlib.h>
#include<algorithm>
using namespace std;
int w1,r1,w2,r2,w3,r3,r4; 

int getMinPrice(int w, int &delta){

   if(w > w3){
     delta = 0;
     return w * r4;
   } 
   
   if(w > w2 && w <= w3){
      int minPrice = w*r3;
      if(minPrice > (w3+1)*r4){
         delta = w3 +1 - w;
         minPrice = (w3+1)*r4;     
      }  
      return  minPrice; 
   }
   
   if( w>w1 && w <= w2){
     int minPrice = w*r2;
     
     if( minPrice > (w3+1)*r4  ){
        minPrice = (w3+1)*r4;
        delta = w3+1 -w;     
     }
     
     if(minPrice > (w2+1)*r3){
       minPrice = (w2+1)*r3;
       delta = w2+1 -w;      
     }
     return minPrice;  
   }
   
    if( w <=w1 ){
     int minPrice = w*r1;
     
     if( minPrice > (w3+1)*r4  ){
        minPrice = (w3+1)*r4;
        delta = w3+1 -w;     
     }
     
     if(minPrice > (w2+1)*r3){
       minPrice = (w2+1)*r3;
       delta = w2+1 -w;      
     }
     
     if(minPrice  > (w1+1)*r2){
       minPrice = (w1+1)*r2;
       delta = w1+1 -w;      
     }
     return minPrice;  
   }
   
     
}
int main()
{
    int d[4][2];
    int num = 1;
  
    int n;
    while(!cin.eof()){
        cin >> w1 >> r1 >> w2 >> r2 >> w3 >> r3>> r4;
        cout << "Set number " << num << ":" << endl; 
        while(cin >> n && n!=0){
            int delta = 0;
            int minP =getMinPrice(n, delta);  
            cout << "Weight ("<< n << ") has best price $"<< minP << " (add " << delta << " pounds)" << endl;
                  
        }
        cout << endl;
        num++;
                       
    }	
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值