數學問題。
題目很難讀懂。
給定的一個周期的時間表是的是

左下那個點到右下那個點的時間
然后那個圓的周長占一個位置
然后就是要注意一下這兩個點是在偏左的位置還是偏右的位置相遇
只需要判斷一下從第一個點順序走到第二個點的距離是否小于一半的總距離就好了
答案就出來了
1
#include<stdio.h>
2
int main()
3

{
4
int n,l,a,b,f,L;
5
double t,p,ans,min;
6
scanf("%d%lf",&n,&t);
7
f=n/2;
8
p=t/(f-0.5);
9
printf("N =%4d, T =%6.1lf\n",n,t);
10
while(scanf("%d%d",&a,&b)!=EOF)
11
{
12
l=a-b;
13
L=a-b;
14
if(l<0)
15
{
16
l=-l;
17
L+=n;
18
}
19
ans=(l-0.5)*p;
20
if((ans/2)>(t-ans/2))min=(t-ans/2);
21
else min=(ans/2);
22
printf("Chair%4d meets chair%4d, remaining time =",a,b);
23
if(L<f)printf("%6.1lf\n",min);
24
else printf("%6.1lf\n",t-min);
25
26
}
27
return 0;
28
29
}