Codeforces Problem-1594A Consecutive Sum Riddle
题目链接
题目大意:
给定一个数n,要求找到一个区间[l,r],使得l+(l+1)+…+(r-1)+r=n。将区间两端l和r输出出来。
基本思想:
对称区间思想:令r=n,则令l+(l+1)+…+(r-1)=0,即l=1-r。
AC代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
ll n;
scanf("%lld",&n);
if (n==1)
printf("0 1\n");
else
printf("%lld %lld\n",1-n,n);
}
return 0;
}