C++题解:谁在对面?【回复可见】
本帖最后由 高山 于 2022-9-19 21:15 编辑原创声明:本帖题目素材来源于网络,但题解自创,原题及代码测试链接:https://codeforces.com/problemset/problem/1560/B
题目说明:
有n个人(编号1~n)顺时针坐成一圈,例如,当n=6时:
可以发现1和4、2和5、3和6是面对面坐的
现在,不知道n的值,只告诉你3个数字a b c,代表a和b是面对面做的,请问和c面对面坐的人是谁?
数据范围:1≦t≦104,1≦a,b,c≦108
样例输入(多测题,打1反1)
4
2 5 4
6 2 4
2 3 1
2 4 10样例输出:
1
8
-1
-1
代码:**** Hidden Message *****演示视频在评论区置顶评论
根据图示,3可以定义为宏 1 不知为什么会WA{:10_243:}
#include <cstdio>
using namespace std;
#define abs(x) ((x) > 0 ? (x) : -(x))
int main() {
int test, a, b, c, n;
scanf("%d", &test);
while (test--) {
scanf("%d%d%d", &a, &b, &c);
n = abs((a - b) * 2);
if (a > n || b > n || c > n)
printf("-1\n");
else {
int tmp = abs(c - n / 2);
if (tmp == 0)
tmp = n;
printf("%d\n", tmp);
}
}
} TM的,我数学没学好{:10_282:}
页:
[1]