根据以下内容用c语言编写程序。一开始有n个人在排队打疫苗,有m个不守规矩的人,在指定的时刻到来,并插入到队伍中,请列出在时刻t的时侯,正在排队的人员信息。注意:每个人打疫苗需要用1个时间单位,打完疫苗即离开。 输入格式: 第一行输入两个整数n,m(0<m, n<=1000); 第二行输入n个整数,表示n个正在排队的人的编号; 接着输入m行,表示m个插队的人依次到来,每行三个整数,分别为插队人的编号,到来时刻和插队位置i(表示插入到当前队列第i个位置)。 最后一行输入一个整数t (0<=t<=2000),表示查询的时刻。 输出格式: 输出在时刻t, 正在排队的人员编号,按照队列顺序输出,用空格隔开。
时间: 2023-05-13 22:07:40 浏览: 164
以下是用C语言编写的程序,可以实现上述功能:
#include <stdio.h>
int main() {
int n, m, t;
scanf("%d %d", &n, &m);
int queue[1000]; // 用数组模拟队列
for (int i = 0; i < n; i++) {
scanf("%d", &queue[i]);
}
for (int i = 0; i < m; i++) {
int id, time, pos;
scanf("%d %d %d", &id, &time, &pos);
// 将插队的人插入到队列中
for (int j = n + i - 1; j >= pos; j--) {
queue[j+1] = queue[j];
}
queue[pos] = id;
}
scanf("%d", &t);
int count = 0;
for (int i = 0; i < n + m; i++) {
if (count == t) {
printf("%d ", queue[i]);
}
count++;
if (count % 2 == 0) { // 每个人需要用1个时间单位
count = 0;
}
}
return 0;
}
当用户输入n和m后,程序会先读入n个正在排队的人的编号,然后读入m个插队的人的信息,并将他们插入到队列中。最后,程序会读入查询的时刻t,并输出在该时刻正在排队的人员编号。程序中用数组模拟队列,用count变量记录当前时间,每个人需要用1个时间单位,当count为t时,输出当前队列中的人员编号。
阅读全文