|
本帖最后由 程子 于 2025-5-10 14:14 编辑
#include<bits/stdc++.h>
using namespace std;
#define MAX_N 9999
#define MAX_NAME 10
struct task{
char name[MAX_N+1];
int time;
};
task t[MAX_N+1];
int front=0;
int rear=0;
int initqueue(){
front=rear=0;
return 0;
}
bool isfull(){
return (rear+1)%(MAX_N+1)==front;
}
bool isempty(){
return rear==front;
}
int enqueue(task e){
if(isfull()){
return -1;
}
t[rear]=e;
rear=(rear+1)%(MAX_N+1);
return 0;
}
int dequeue(task &e){
if(isempty()){
return -1;
}
e=t[front];
front=(front+1)%(MAX_N+1);
return 0;
}
int main(){
int n,q;
cin>>n>>q;
initqueue();
task tmp;
for(int i=0;i<n;i++){
cin>>tmp.name>>tmp.time;
enqueue(tmp);
}
int time=0;
while(!isempty()){
dequeue(tmp);
if(tmp.time>q){
time+=q;
tmp.time=tmp.time-q;
enqueue(tmp);
}
else{
time+=tmp.time;
cout<<tmp.name<<" "<<time<<'\n';
}
}
return 0;
}hhhbhfhvjrvhhjf
|
|