Time Limit: 2 sec / Memory Limit: 1024 MB
Score: 200200 points
Problem Statement
The restaurant AtCoder serves the following five dishes:
- ABC Don (rice bowl): takes AA minutes to serve.
- ARC Curry: takes BB minutes to serve.
- AGC Pasta: takes CC minutes to serve.
- APC Ramen: takes DD minutes to serve.
- ATC Hanbagu (hamburger patty): takes EE minutes to serve.
Here, the time to serve a dish is the time between when an order is placed and when the dish is delivered.
This restaurant has the following rules on orders:
- An order can only be placed at a time that is a multiple of 1010 (time 00, 1010, 2020, ......).
- Only one dish can be ordered at a time.
- No new order can be placed when an order is already placed and the dish is still not delivered, but a new order can be placed at the exact time when the dish is delivered.
E869120 arrives at this restaurant at time 00. He will order all five dishes. Find the earliest possible time for the last dish to be delivered.
Here, he can order the dishes in any order he likes, and he can place an order already at time 00.
Constraints
- A,B,C,DA,B,C,D and EE are integers between 11 and 123123 (inclusive).
Input
Input is given from Standard Input in the following format:
AA BB CC DD EE
Output
Print the earliest possible time for the last dish to be delivered, as an integer.
Sample Input 1 Copy
Copy
29 20 7 35 120
Sample Output 1 Copy
Copy
215
If we decide to order the dishes in the order ABC Don, ARC Curry, AGC Pasta, ATC Hanbagu, APC Ramen, the earliest possible time for each order is as follows:
- Order ABC Don at time 00, which will be delivered at time 2929.
- Order ARC Curry at time 3030, which will be delivered at time 5050.
- Order AGC Pasta at time 5050, which will be delivered at time 5757.
- Order ATC Hanbagu at time 6060, which will be delivered at time 180180.
- Order APC Ramen at time 180180, which will be delivered at time 215215.
There is no way to order the dishes in which the last dish will be delivered earlier than this.
Sample Input 2 Copy
Copy
101 86 119 108 57
Sample Output 2 Copy
Copy
481
If we decide to order the dishes in the order AGC Pasta, ARC Curry, ATC Hanbagu, APC Ramen, ABC Don, the earliest possible time for each order is as follows:
- Order AGC Pasta at time 00, which will be delivered at time 119119.
- Order ARC Curry at time 120120, which will be delivered at time 206206.
- Order ATC Hanbagu at time 210210, which will be delivered at time 267267.
- Order APC Ramen at time 270270, which will be delivered at time 378378.
- Order ABC Don at time 380380, which will be delivered at time 481481.
There is no way to order the dishes in which the last dish will be delivered earlier than this.
Sample Input 3 Copy
Copy
123 123 123 123 123
Sample Output 3 Copy
Copy
643
题意:给出abcde五个数,计算其最小和。要求:前三次求和之后的结果必须向上取整,比如a+b+c+d=152,那么结果就是160.最后一次求和结果不需要向上取整,问:最小的和是多少。
分析:尽可能少向上取整。排序方式是0、9、8……2、1。因为计算过程中向上取整所得到的数越小越好,那么我们排序时候就应该优先考虑末尾与10越接近越好,这样产生的误差就会小。
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
bool sort1(int a, int b)
{
int ta = a%10;
int tb = b%10;
if(ta>0&&tb>0)return ta>tb;
if(ta==0)return true;
if(tb==0)return false;
}
int main()
{
int a[10];
for(int i = 1; i <= 5; i++)cin>>a[i];
sort(a+1,a+6,sort1);
int sum = 0;
for(int i = 1; i <= 4; i++)
{
int t = a[i]%10;
if(t)
{
sum += a[i] + 10-t;
}else
{
sum+=a[i];
}
}
sum+=a[5];
cout<<sum<<endl;
return 0;
}