• 周五. 4 月 24th, 2026

物嫩软件资讯网

软件资讯来物嫩

ZCMU–5154: 体育运动

admin@wunen

5 月 11, 2025

Description

小 D 晚上经常犯困,为了避免犯困小 D 会进行体育运动来使自己保持清醒。

但是今天小 D 太困了,以致于他在操场跑圈的时候睡着了,他做了一个奇怪的梦境,梦中他处于一个巨大的长度为 n 的线段上,他可以在上面以任意整数距离跳来跳去,但是已经跳过的地方不能再次经过。

形式化的,一个长度为 n 的线段,线段上坐标为 1∼n,从 i 跳到 j 的距离是 |i−j|,已经经过的 i 不能再次经过。

小 D 想找到一种方案使得他最清醒,也就是说,使得他跳过的距离的和最大,形式化的,设第 i 次跳跃后所处位置为 posi,即最大化 ∑|posi−posi−1|(2<=i<=n)。

注意,小 D 一开始在位置 1。

Input

一行一个正整数 n 代表线段的长度。

对于 20% 的数据,1≤n≤10

对于 50% 的数据,1≤n≤10^6。

对于 100% 的数据,1≤n≤10^9。

Output

一行一个正整数代表答案。

Sample Input

2

Sample Output

1

解析:最大化跳的距离和,那么我们先跳到最右边没经过的点,再跳回最左边没经过的点,如此反复跳完1~n,总和肯定就是最大的,然后模拟一下发现sum和就是1~n-1的等差数列和,注意需要开long long,不然会WA🐱‍🏍

#include <stdio.h>
int main()
{
	long long n;
	scanf("%lld",&n);
	printf("%lld\n",(n*n-n)/2);
	return 0;
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注