Sicily 1093. Air Express

来源:互联网 发布:中智留学 知乎 编辑:程序博客网 时间:2024/05/18 00:22
水题,简单模拟。
// Problem#: 1093// Submission#: 2250427// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by Informatic Lab of Sun Yat-sen University#include <iostream>#include <vector>#include <string.h>#include <algorithm>#include <cstdio>#include <cmath>#include <queue>#include <map>#include <set>#include <string>#include <stack>#include <bitset>#define MIN 0x3f3f3f3fusing namespace std;int main(){    //freopen("in.txt", "r", stdin);    int w[5], r[5];    int cont = 1;    while(cin >> w[1] >> r[1]){        for(int i = 2; i <= 3; i++)            cin >> w[i] >> r[i];        cin >> r[4];        w[0] = 0, w[4] = 1000;        int wt;        cout << "Set number " << cont++ <<":" <<endl;        while(cin >> wt && wt){            int min_p = MIN, min_a;            for(int i = 1; i <= 4 ; i++){                if(wt <= w[i]){                    if(wt >= w[i-1]+1){                        min_p = wt * r[i], min_a = 0;                    }                    else{                        if(min_p > (w[i-1]+1) * r[i])                            min_p = (w[i-1]+1) * r[i], min_a = w[i-1]+1-wt;                        else if(min_p == w[i-1]*r[i] && min_a > w[i]-wt)                            min_a = w[i-1]+1-wt;                    }                }            }            cout << "Weight (" << wt << ") has best price $" << min_p << " (add " << min_a << " pounds)" <<endl;        }        cout << endl;    }}