题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
using namespace std;
int n; //实际学生数量
const int STU_NUM = 100100; //记录最大可能学生数目
int students[STU_NUM + 1][3]; //用最大可能容量记录学生的三种时间信息,students[0][]不使用
int latestTime[STU_NUM + 1]; //记录学生最晚等待时间,latestTime[0]不使用
int main() {
for (int i = 0; i <= STU_NUM; i++) { //初始化
for (int j = 0; j <= 2; j++) {
students[i][j] = 0;
}
}
//输入
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= 2; j++) {
cin >> students[i][j];
}
}
latestTime[0] = 0;
for (int i = 1; i <= STU_NUM; i++) { //计算最晚等待时间
latestTime[i] = students[i][0] + students[i][2];
}
int i = 1; //第i个学生
long long time = students[1][0]; //运行过程的实际时刻
while (students[i][0] > 0) { //学生到达的时刻为零就中止循环
if (time <= latestTime[i]) { //如果 第i个学生开始打饭时刻 <= 最晚等待时间,则允许打饭
if (time < students[i][0]) { //time < 第i个学生开始排队
time = students[i][0]; //时间跳转到第i个学生开始排队的时间
}
cout << time << " "; //输出第i个学生开始打饭时刻
time += students[i][1]; //第i个学生打饭耗时ti
}
else{
cout << -1 << " ";
}
i++;
}
return 0;
}