【问题】同一个时间的订单该如何选择?
2023-11-17 18:27:58
发布于:广东
7阅读
0回复
0点赞
【问题】同一个时间的订单该如何选择?我是选择结束时间早的,肯定不正确,但大部分测试用例通过,求助大神
#include<bits/stdc++.h>
using namespace std;
struct order{
int start;
int end;
int t;
};
bool cmp(order a,order b){
if(a.start==b.start){
return a.end<b.end;
}
return a.start<b.start;
}
int main(){
int N,K;
cin>>N>>K;
order ods[K];
for(int i=0;i<K;i++){
cin>>ods[i].start>>ods[i].t;
ods[i].end = ods[i].start+ods[i].t;
}
sort(ods,ods+K,cmp);
int tt = ods[0].t;
int s = ods[0].end;
int i=1;
while(tt<=N && i<K){
if(ods[i].start>=s){
//cout<<tt<<" "<< ods[i].t<< " "<<tt+ods[i].t<<" "<<i<<endl;
tt += ods[i].t;
s = ods[i].end;
}
i++;
}
cout<<tt;
return 0;
}
这里空空如也
有帮助,赞一个