1206: B.求和

时间:2023-03-09 22:59:19
1206: B.求和

题目描述 点击这里

对于正整数n,k,我们定义这样一个函数f,它满足如下规律

现在给出n和k,你的任务就是要计算f(n,k)的值。

输入

首先是一个整数T,表示有T组数据
接下来每组数据是n和k(1<=n,k<=108)

输出

打印出f(n,k)的值,每个输出单独占一行

样例输入

3
1 1
2 1
3 1

样例输出

-1
1
-2
 #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
long long T;
cin>>T;
while(T--)
{
long long n,i,j,k,zu,dui,f,sum=,s;
cin>>n>>k;
zu=n/k;
dui=zu/;
sum=dui*k*k;
s=n-dui**k;
f=+dui**k;
if(s<=k)
{
for(i=;i<s;i++)
{
sum-=f;
f++;
}
}
else
{
for(i=;i<k;i++)
{
sum-=f;
f++;
}
for(i=;i<s-k;i++)
{
sum+=f;
f++;
}
}
cout<<sum<<endl;
}
}