#排队干饭#acwing#复旦大学机试
提示:本代码并未通过极限情况下的测试用例(10000个数据),因为vector申请的内存空间过大,其他使用数组的题解均有这种情况
链接https://www.acwing.com/problem/content/description/5063/
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int main(){
int n;
int ai,bi,ti;
vector<int> veca,vecb,vect;//到达时间,等待时间,打饭时间
int cur_time;//记录当前时间
scanf("%d",&n);
while(scanf("%d%d%d",&ai,&ti,&bi)!=EOF){
veca.push_back(ai);
vect.push_back(ti);
vecb.push_back(bi);
}
cur_time=veca[0];
for(int i=0;i<n;i++){
if(cur_time<=veca[i]) cur_time=veca[i];
if(cur_time<=veca[i]+vecb[i]){ //下个同学可以打饭
printf("%d ",cur_time);
cur_time+=vect[i];
}
else {
printf("-1 ");
}
}
return 0;
}
小天才公司福利 1199人发布