Soldier and Bananas
题面翻译
有个士兵想买 w w w 个香蕉,第 i i i 个香蕉需支付 k i ki ki 元。
现在他手里有 n n n 元,问他至少要借多少钱才能买到 w w w 个香蕉?(不需要借钱输出 0 0 0)。
输入一行三个整数 n n n, k k k, w w w, 含义如题面。
题目描述
A soldier wants to buy $ w $ bananas in the shop. He has to pay $ k $ dollars for the first banana, $ 2k $ dollars for the second one and so on (in other words, he has to pay $ i·k $ dollars for the $ i $ -th banana).
He has $ n $ dollars. How many dollars does he have to borrow from his friend soldier to buy $ w $ bananas?
输入格式
The first line contains three positive integers $ k,n,w $ ( $ 1<=k,w<=1000 $ , $ 0<=n<=10^{9} $ ), the cost of the first banana, initial number of dollars the soldier has and number of bananas he wants.
输出格式
Output one integer — the amount of dollars that the soldier must borrow from his friend. If he doesn’t have to borrow money, output $ 0 $ .
样例 #1
样例输入 #1
3 17 4
样例输出 #1
13
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll k,n,w;
cin>>k>>n>>w;
ll pay=(w+1)*w/2*k;
if(n>=pay) cout<<0<<endl;
else cout<<pay-n<<endl;
return 0;
}