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

UCF Local Programming Contest 2017 C. Singin' in the Rain_第1张图片
UCF Local Programming Contest 2017 C. Singin' in the Rain_第2张图片

题目大意:

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

由于每次都必须达到并听完某首歌后,才能去听下一首歌单里的歌,所以每次的转换是互不影响的,所以只需用两个函数分别计算从当前歌跳至下一首目标歌曲时,往前跳和往后跳所需次数,取 m i n min 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;
}

你可能感兴趣的:(计蒜客)