sicily 1093. Air Express
2015-10-30 20:19
453 查看
1093. Air Express
Constraints
Time Limit: 1 secs, Memory Limit: 32 MBDescription
Fly It Today! (FIT), an air express company, charges different amounts for packages depending on their weight. For example, one set of rates may be:Package weight Cost per pound
0 to 9 pounds $10
10 to 49 pounds $5
50 to 99 pounds $3
100 pounds or more $2
This rate structure has upset some customers who have realized that it costs less to ship a 10pound package ($50) than an 8 pound package ($80) and it costs less to ship a 100 poundpackage ($200) than a 90 pound one ($270). FIT wants to check packages to determine
if the customer can pay a lower price by adding weight to the package. If this is the case, they want to know the minimum weight to be added to obtain the lowest price possible.
Input
The input file will have one or more data sets. Each data set begins with exactly 4 lines, giving the shipping rates. These will be:weight1 rate1
weight2 rate2
weight3 rate3
rate4
You may assume all of these values are positive integers less than 1001 and weight1 < weight2 < weight3 . The values represent the rate table below:
There will then be 1 or more lines of customer package sizes. Each of these will be a positive integer less than 1001. The end of customer package sizes is indicated by the single integer 0.
The end of input will be indicated by end of file.
Output
For each input set, print the input set number. Then, for each of the customer package sizes in the input set, create a line of output formatted as follows:Weight (<w>) has best price $<price> (add <p> pounds)
Where <w> is the weight of the customer package, as defined in the input set, <price> is the lowest price the customer can pay to send that package (with, optionally, added weight) based on the input set shipping rates, and <p> is the number of pounds to be
added to the package to obtain the price (<p> must be greater than or equal to 0). If more than one different weight results in the best possible price, use the smaller weight.
Have a blank line after the output for each input set.
Sample Input
9 10 49 5 99 3 2 8 10 90 100 200 0 10 10 20 20 30 30 100 1 12 29 50 0
Sample Output
Set number 1: Weight (8) has best price $50 (add 2 pounds) Weight (10) has best price $50 (add 0 pounds) Weight (90) has best price $200 (add 10 pounds) Weight (100) has best price $200 (add 0 pounds) Weight (200) has best price $400 (add 0 pounds) Set number 2: Weight (1) has best price $10 (add 0 pounds) Weight (12) has best price $240 (add 0 pounds) Weight (29) has best price $870 (add 0 pounds) Weight (50) has best price $5000 (add 0 pounds)
题目分析
找最优差价,直接暴力比较
每个output后面加一个blank
#include <stdio.h>
#include <string.h>
int main()
{
int wei1, rate1;
int num = 1;
while (EOF != scanf("%d%d", &wei1, &rate1)) {
int wei2, rate2;
int wei3, rate3;
int rate4;
scanf("%d%d%d%d%d", &wei2, &rate2, &wei3, &rate3, &rate4);
int a[100];
memset(a, -1, sizeof(a));
int count = 0;
while (1) {
scanf("%d", &a[count]);
if (a[count] == 0)
break;
else
++count;
}
printf ("Set number %d:\n", num++);
for (int i = 0; i < count; ++i) {
printf("Weight (%d) has best price $", a[i]);
int min=0;
int jia=0;
if (a[i] <= wei1) {
min = a[i] * rate1;
if (rate2 * (wei1 + 1) < min){
min = rate2 * (wei1 + 1);
jia = wei1 + 1 - a[i];
}
} else if (wei1 < a[i] && a[i] <= wei2) {
min = a[i] * rate2;
if (rate3 * (wei2 + 1) < min) {
min = rate3 * (wei2 + 1);
jia = wei2 + 1 - a[i];
}
} else if (wei2 < a[i] && a[i] <= wei3) {
min = a[i] * rate3;
if (rate4 * (wei3 + 1) < min) {
min = rate4 * (wei3 + 1);
jia = wei3 + 1 - a[i];
}
} else if (a[i] > wei3) {
min = a[i] * rate4;
jia=0;
}
printf("%d (add %d pounds)\n", min, jia);
}
printf("\n");
}
return 0;
}
相关文章推荐
- H - Relief grain
- 线程的sleep()和wait() 区别
- 给hmailserver添加SSL支持
- SendMail
- HDU 4300 Clairewd’s message (kmp | exkmp)
- 通过CONSTRAINTS查看表之间的主外键关系
- STM_HAL: assert_param 与 assert_failed函数
- BZOJ 4320 ShangHai2006 Homework 并查集
- OS X EI Captain安装Cocoapods问题
- Aizu-0558 Cheese
- bzoj-1535 Sza-Template
- Aizu-0033 Ball
- ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效"的快速解决方法
- 如何签名apk,并让baidu地图正常显示
- Fail to connect to camera service的几种原因和解决方法
- 解决Linux报错:httpd: Could not reliably determine the server's fully qualified domain name, using localh
- raise语句
- Juniper Open contrail 虚拟网络互通
- Aizu-0118 Property Distribution
- AirPlay简介