其余不用管,最后一个是个位最小即可
2026-04-28 19:01:34
发布于:北京
8阅读
0回复
0点赞
订单只能在时间为 10 的倍数时下,且订单不能互相覆盖
当处理某订单时,如果其时间不是10 的倍数,则下次下单时间是当前时间加本订单时间向上取10的整倍数。否则下次下单时间是当前时间加本订单时间。
因此,要想最后一道菜送达的时间早,只有最后一道菜送达时间可操作。将订单时间个位最小(排除0)的放在最后即可,其他订单顺序无要求。
#include<bits/stdc++.h>
using namespace std;
struct node{
int num, x;
}arr[5];
bool cmp(node a, node b){
return a.x>b.x;
}
int main() {
for(int i=0; i<5; i++){
cin>>arr[i].num;
arr[i].x=arr[i].num%10;
if(arr[i].x==0) arr[i].x=10;
}
sort(arr, arr+5, cmp);
int sum=0;
for(int i=0; i<4; i++){
if(arr[i].x==10) sum+=arr[i].num;
else sum+=(arr[i].num/10+1)*10;
}
cout<<sum+arr[4].num;
return 0;
}
这里空空如也

有帮助,赞一个