CodeForces - 1594A Consecutive Sum Riddle数学计算
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces - 1594A Consecutive Sum Riddle数学计算相关的知识,希望对你有一定的参考价值。
A. Consecutive Sum Riddle
time limit per test 2 seconds
memory limit per test 256 megabytes
Theofanis has a riddle for you and if you manage to solve it, he will give you a Cypriot snack halloumi for free (Cypriot cheese).
You are given an integer n. You need to find two integers l and r such that −1018≤l<r≤1018 and l+(l+1)+…+(r−1)+r=n.
Input
The first line contains a single integer t (1≤t≤104) — the number of test cases.
The first and only line of each test case contains a single integer n (1≤n≤1018).
Output
For each test case, print the two integers l and r such that −1018≤l<r≤1018 and l+(l+1)+…+(r−1)+r=n.
It can be proven that an answer always exists. If there are multiple answers, print any.
Example
input
7
1
2
3
6
100
25
3000000000000
output
0 1
-1 2
1 2
1 3
18 22
-2 7
999999999999 1000000000001
Note
In the first test case, 0+1=1.
In the second test case, (−1)+0+1+2=2.
In the fourth test case, 1+2+3=6.
In the fifth test case, 18+19+20+21+22=100.
In the sixth test case, (−2)+(−1)+0+1+2+3+4+5+6+7=25.
问题链接:CodeForces - 1594A Consecutive Sum Riddle
问题简述:(略)
问题分析:(略)
AC的C语言程序如下:
/* CodeForces - 1594A Consecutive Sum Riddle */
#include <stdio.h>
int main()
int t;
scanf("%d", &t);
while (t--)
long long n;
scanf("%lld", &n);
printf("%lld %lld\\n", -n + 1, n);
return 0;
以上是关于CodeForces - 1594A Consecutive Sum Riddle数学计算的主要内容,如果未能解决你的问题,请参考以下文章