主要将顾客的服务时间进行排序,时间短的先服务,长的再进行服务,这样让等待的时间会最短。
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct{
int index,t;
}Cus;
bool cmp(Cus a,Cus b){
if(a.t<=b.t) return true;
return false;
}
int main(){
Cus cus[10];
cus[0].t=0;
int n,s;
int total=0;
cout<<"Input number of customer:";
cin>>n;
cout<<"Input number of services:";
cin>>s;
cout<<"Input index and time:"<<endl;
for(int i=1;i<=n;i++){
cin>>cus[i].index>>cus[i].t;
}
sort(cus+1,cus+n+1,cmp);
cout<<"顾客的服务次序:"<<endl;
for(int i=1;i<=n;i++){
cout<<cus[i].index<<" ";
}
cout<<endl;
if(s==1){
int j=n-s;
for(int i=1;i<=(n-s);i++){
total+=cus[i].t*j;
j--;
}
float aver=total/n;
cout<<"averger time:"<<aver;
}
if(s>1){
int j=n-s;
for(int i=1;i<=(n-s);i++){
total+=(cus[i].t-cus[i-1].t)*j;
j--;
}
float aver=total/n;
cout<<"averger time:"<<aver;
}
}