题目描述
FJ 有一个长度为 L(1≤L≤10,000)的绳子。这个绳子上有 N(1≤N≤100)个结,包括两个端点。FJ 想将绳子对折,并使较短一边的绳子上的结与较长一边绳子上的结完全重合,如图所示:
找出FJ有多少种可行的折叠方案。
输入格式
第一行:两个整数,N 和 L。
第 2 至 N+1 行:每一行包含一个整数表示一个结所在的位置,总有两个数为 0 和 L。
输出格式
第一行: 一个整数表示FJ可折叠的方案数。
输入输出样例
输入 #1
5 10 0 10 6 2 4
输出 #1
4
说明/提示
(可在 1,2,3,8 点处折叠)
#include <bits/stdc++.h>
#define F 1999999999
const int N = 10005;
int a[N],n,ans=F;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%*d%d", &a[i]);
for(int i=-10000;i<=10000;i++)
{
int tot=0;
for(int j=1;j<=n;j++)tot+=abs(i-a[j]);
if(ans>tot)ans=tot;
}
printf("%d\n",ans);
return 0;
}