没什么好说的,利用分支结构进行判断就好。
Run Time: 0sec
Run Memory: 312KB
Code length: 2062Bytes
SubmitTime: 2011-06-10 15:31:05
// Problem#: 1093
// Submission#: 797147
// 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>
using namespace std;
int main()
{
int weight1, weight2, weight3, rate1, rate2, rate3, rate4;
int size, add, cost;
int t = 0;
while ( cin >> weight1 >> rate1 >> weight2 >> rate2 >> weight3 >> rate3 >> rate4 ) {
t++;
cout << "Set number " << t << ":"<<endl;
while ( !0 ) {
cin >> size;
if ( size == 0 )
break;
add = 0;
if ( size <= weight1 ) {
cost = rate1 * size;
if ( ( weight1 + 1 ) * rate2 < cost ) {
add = weight1 + 1 - size;
cost = ( weight1 + 1 ) * rate2;
}
if ( ( weight2 + 1 ) * rate3 < cost ) {
add = weight2 + 1 - size;
cost = ( weight2 + 1 ) * rate3;
}
if ( ( weight3 + 1 ) * rate4 < cost ) {
add = weight3 + 1 - size;
cost = ( weight3 + 1 ) * rate4;
}
}
else if ( size > weight1 && size <= weight2 ) {
cost = rate2 * size;
if ( ( weight2 + 1 ) * rate3 < cost ) {
add = weight2 + 1 - size;
cost = ( weight2 + 1 ) * rate3;
}
if ( ( weight3 + 1 ) * rate4 < cost ) {
add = weight3 + 1 - size;
cost = ( weight3 + 1 ) * rate4;
}
}
else if ( size > weight2 && size <= weight3 ) {
cost = rate3 * size;
if ( ( weight3 + 1 ) * rate4 < cost ) {
add = weight3 + 1 - size;
cost = ( weight3 + 1 ) * rate4;
}
}
else
cost = rate4 * size;
cout << "Weight (" << size << ") has best price {1}quot; << cost << " (add " << add << " pounds)"<< endl;
}
cout << endl;
}
return 0;
}