求助站外题
  • 板块灌水区
  • 楼主Esawkm
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/3/19 22:39
  • 上次更新2023/10/28 06:09:24
查看原帖
求助站外题
642481
Esawkm楼主2022/3/19 22:39

淘淘和蓝蓝一起去参加乒乓球比赛,算上他们一共有2N2*N个人参加了此次比赛,共有NN个乒乓台可供比赛。比赛分为若干轮,每一轮同时在第XX个乒乓台(1XN)(1\leq X\leq N)的两名选手展开一场对决,分出胜负后,败者前往第X+1X+1个乒乓台(如果X=NX=N,那么败者仍留在第NN个乒乓台),胜者前往第X1X-1个乒乓台(如果X=1X=1,那么胜者仍留在第11个乒乓台),接着再开始新的一轮,以此类推。

一开始淘淘在第A个乒乓台,蓝蓝在第B个乒乓台,他们想知道,至少经过多少轮,他们两才能在同一个乒乓台对决呢?

输入: 一行三个正整数N,A,BN,A,B

输出: 一行一个整数表示答案。

样例输入 5 2 3

样例输出 2

提示: 第一轮,淘淘赢下比赛来到第1个乒乓台,蓝蓝赢下比赛来到第2个乒乓台;

第二轮,淘淘赢下比赛仍留在第1个乒乓台,蓝蓝赢下比赛来到第1个乒乓台与淘淘汇合。

备注: 对于50%的数据,满足A和B的奇偶性相同

对于另外20%的数据,满足A=1B=NA=1,B=N

对于100%的数据,满足1A<BN,2N10181\leq A< B \leq N,2\leq N\leq 10^{18}

我的代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a,b;
	cin>>n>>a>>b;
	if(a%2==b%2)
	cout<<(abs(a-b)/2);
	else
	{
		if(a%2!=b%2)
		cout<<(abs(a-b)/2)+1;
	}
	return 0;
}

为什么只能得60分?

2022/3/19 22:39
加载中...