CF1560B Who‘s Opposite?

Link

洛谷 & Codeforces

Tag

洛谷:数学

Codeforces:math

Difficulty Level

洛谷: 普及 − \color{#f39c11}{普及-} 普及

Codeforces: 800 \color{grey}{800} 800

Solution

题目告诉我们 a a a b b b 相对,不妨假设 a < b a<b a<b,显然相对的 a a a b b b 之间有 b − a − 1 b-a-1 ba1 个人,则环中共有 n = ( b − a ) × 2 n=(b-a)\times2 n=(ba)×2 个人。
在这里插入图片描述
a , b , c a,b,c a,b,c 中有大于 n n n 的则输出 − 1 -1 1

通过一些 奇技淫巧 思考,我们可以得出 c c c 所对的人为 ( ( c + n 2 − 1 )   m o d   n ) + 1 ((c+\dfrac{n}{2}-1) \bmod n) +1 ((c+2n1)modn)+1

Code

#include<iostream>
#include<cstdio>
using namespace std;
int a,b,c,n;
void work()
{
	scanf("%d%d%d",&a,&b,&c);
	if(a>b)
		swap(a,b);
	n=(b-a)*2;
	if(a>n||b>n||c>n)
		printf("-1\n");
	else
		printf("%d\n",(c+n/2-1)%n+1);
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
		work();
	return 0;
}

Submission

Codeforces submission

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值