#排队干饭#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; }