丢手绢,又叫丢手帕,我国传统的民间儿童游戏。开始前,准备几块手绢,然后大家推选一个丢手绢的人,其余的人围成一个大圆圈蹲下。
游戏开始,被推选为丢手绢的人沿着圆圈外行走。丢手绢的人要不知不觉地将手绢丢在其中一人的身后。被丢了手绢的人要迅速发现自己
身后的手绢,然后迅速起身追逐丢手绢的人,丢手绢的人沿着圆圈奔跑,跑到被丢手绢人的位置时蹲下,如被抓住,则要表演一个节目,
可表演跳舞、歌谣、讲故事等。
Lyf老师碰到一个难题:现在有n个学生围成一圈丢手绢,他们等间距的分布在圆周上,圆的
周长为1000,现在有1个学生出局,剩下的人
要移动位置重新等间距分布,问他们最少需要移动多少距离。Lyf老师脑子有点糊涂,现在这个难题交给你了。
Input
多组测试,每组输入n,1<=n<=1000000000。
Output
对于每组输入,四舍五入输出最少移动距离。
Sample Input
2 3 5
Sample Output
0 167 200
3--2 1x
4---3 (1 +1 )x
5---4 ( 1+2+1 ) x
6--5 ( 1+2+2+1)x
7---6 (1+2+3+2+1)x
.........
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#define eps 1e-8
#define ll long long
const int INF = 0x3f3f3f3f;
const long long mod=1e9+7;
const int N=105;
using namespace std;
int main()
{
ll n,ans;
while(~scanf("%lld",&n))
{
if(n<=2)
{
printf("0\n");
continue;
}
if(n>=2000)
{
printf("250\n");
continue;
}
ll a=(n-2)/2;
ll b=(n-1)/2;
if(b>a)
ans=b*b;
else
ans=b*(b+1);
double k1=1000.0/((n-1)*1.0);
double k2=1000.0/(n*1.0);
double kk=k1-k2;
double mm=kk*(double)ans;
mm+=0.500;
printf("%lld\n",(ll)mm);
}
}