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
b−a−1 个人,则环中共有
n
=
(
b
−
a
)
×
2
n=(b-a)\times2
n=(b−a)×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+2n−1)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;
}