- 1 #include "stdio.h"
- 2 #include "math.h"
- 3 #include "stdlib.h"
- 4 #include "string.h"
- 5
- 6 int select(int *p,int m)
- 7 {
- 8 int temp;
- 9 int number;
- 10 int i=1;
- 11 temp = *p;
- 12 number = 0;
- 13 for(i=1; i<m; i++)
- 14 {
- 15 if(*(p+i)<temp)
- 16 {
- 17 temp = *(p+i);
- 18 number = i;
- 19 }
- 20 }
- 21 return number;
- 22 }
- 23 void output(int *a )
- 24 {
- 25 int i,j;
- 26 int temp;
- 27 int time = 0;
- 28 int m,total;
- 29 int last[20];
- 30 m=*a;
- 31 total = *(a+1);
- 32 for(i=0; i<m; i++)
- 33 {
- 34 last[i]=0;
- 35 }
- 36 for(i=1; i<(total+1); i++)
- 37 {
- 38 temp = select(last,m);
- 39 if(last[temp]>a[2*i])
- 40 {
- 41 time = time + last[temp] - a[2*i];//队长时间减去到来时间等于等待时间
- 42 last[temp] = last[temp] + a[2*i+1];//队长时间加办理时间等于新队长时间
- 43 }
- 44 else if(last[temp]<=a[2*i])
- 45 {
- 46 last[temp] = a[2*i] + a[2*i+1];//到来时间加办理时间等于新队长时间
- 47 }
- 48 }
- 49
- 50 printf("%.2f\n",(float)time/(float)total);
- 51 }
- 52 int main()
- 53 {
- 54 int i;
- 55 int j=0;
- 56 int a[404];
- 57 int c;
- 58 while(scanf("%d",&a[0])!=EOF)
- 59 {
- 60 scanf("%d",&a[1]);
- 61 for(i=1; i<=a[1]; i++)
- 62 {
- 63 scanf("%d%d",&a[2*i],&a[2*i+1]);
- 64 }
- 65 output(a);
- 66 }
- 67 return 0;
- 68 }