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

全部评论

相关推荐

2 1 评论
分享
牛客网
牛客企业服务