UCF Local Programming Contest 2017 C. Singin' in the Rain

在这里插入图片描述
在这里插入图片描述

题目大意:

给出一个歌单顺序,每次听完上一首歌后需要通过按上一曲或下一曲直至达到下一首要听的歌,问要听完整个给出的歌单顺序,需要按多少次按钮,

由于每次都必须达到并听完某首歌后,才能去听下一首歌单里的歌,所以每次的转换是互不影响的,所以只需用两个函数分别计算从当前歌跳至下一首目标歌曲时,往前跳和往后跳所需次数,取 m i n min 记录,最后求和即是答案。

AC代码:

int a[1010];
int n, t, s;
int main()
{
	sd(n);
	while (n--)
	{
		ll ans = 0, num1, num2;
		sdd(t, s);
		rep(i, 1, s)
			sd(a[i]);
		int last = a[1];
		rep(i, 2, s)
		{
			if (last >= a[i])
			{
				num1 = t - last + a[i] - 1;
				num2 = last - a[i] + 1;
			}
			else
			{
				num1 = a[i] - last - 1;
				num2 = last + 1 + t - a[i];
			}
			ans += min(num1, num2);
			last = a[i];
		}
		pld(ans);
	}
	return 0;
}
发布了786 篇原创文章 · 获赞 460 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/105349448