Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Usage : './a.out 10'
- * where 10 is the number of customers
- */
- #include<iostream>
- #include<stdlib.h>
- #define FOR(n) for(int i=0;i<(n);i++)
- #define TAB "\t"
- using namespace std;
- int main(int argc, char *argv[]) {
- struct event {
- int id;
- float arrival_time, service_time, start_time, dept_time, server_idle_time, time_in_queue, total_time;
- } e[100];
- int n=atoi(argv[1]);
- //Get inputs
- cout<<"Input method : arrival_time<TAB>service_time"<<endl;
- cout<<"Arrival\tService"<<endl;
- cout<<"Time\tTime"<<endl;;
- FOR(n){
- e[i].id = i+1;
- cin>>e[i].arrival_time>>e[i].service_time;
- }
- //Populate
- FOR(n){
- if(0==i || e[i-1].dept_time < e[i].arrival_time)
- e[i].start_time = e[i].arrival_time;
- else
- e[i].start_time = e[i-1].dept_time;
- e[i].dept_time = e[i].start_time + e[i].service_time;
- e[i].time_in_queue = e[i].start_time - e[i].arrival_time;
- e[i].total_time = e[i].dept_time - e[i].arrival_time;
- e[i].server_idle_time = e[i].arrival_time - (0==i ? 0 : e[i-1].dept_time);
- e[i].server_idle_time = e[i].server_idle_time > 0 ? e[i].server_idle_time : 0;
- }
- //Output
- cout<<"Cust\tArrival\tStart\tDept\tServer\tTime in\tTotal"<<endl;
- cout<<"ID\tTime\tService\tTime\tIdle\tQueue\tTime"<<endl;
- FOR(n){
- cout<<e[i].id<<TAB<<e[i].arrival_time<<TAB<<e[i].start_time<<TAB<<e[i].dept_time<<TAB<<e[i].server_idle_time<<TAB<<e[i].time_in_queue<<TAB<<e[i].total_time<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment