这题当时比赛的时候以为是dp,以为客人走了还会回来==!
1 #include<iostream>
2 #include<stdio.h>
3 using namespace std;
4
5 int main()
6 {
7 int pi[1001],ti[1001];
8 double temp,Maxtime,Max,Time;
9 int t,n,i,sum;
10 scanf("%d",&t);
11 while(t--)
12 {
13 scanf("%d",&n);
14 for(i=1;i<=n;i++)
15 {
16 scanf("%d",&pi[i]);
17 }
18 ti[0]=0;
19 for(i=1;i<=n;i++)
20 {
21 scanf("%d",&ti[i]);
22 }
23 sum=0;
24 Max=0;
25 Maxtime=0;
26 for(i=1;i<=n;i++)
27 {
28 sum+=pi[i];
29 temp=(double)sum/(i);//当前的平均价格
30 if(Maxtime<(ti[i]-ti[i-1]))
31 {
32 Maxtime=ti[i]-ti[i-1];
33 }
34 if(i==n)
35 {
36 if(temp>Max)
37 {
38 Max=temp;
39 Time=Maxtime;
40 }
41 continue;
42 }
43 if(Maxtime<(ti[i+1]-ti[i])&&temp>Max)
44 {
45 Max=temp;
46 Time=Maxtime;
47 }
48 }
49 printf("%.6lf %.6lf\n",Time,Max);
50 }
51 return 0;
52 }