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?
Input
The first line contains three positive integers k,?n,?w (1??≤??k,?w??≤??1000, 0?≤?n?≤?109),
the cost of the first banana, initial number of dollars the soldier has and number of bananas he wants.
Output
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.
Sample test(s)
input
3 17 4
output
13
题意:
要买w个香蕉,第一个k元,第二个2k,第i个i*k,现在有n元,还需要多少元
#include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <stack> #include <queue> #include <map> #include <set> #include <vector> #include <math.h> #include <bitset> #include <list> #include <algorithm> #include <climits> using namespace std; #define lson 2*i #define rson 2*i+1 #define LS l,mid,lson #define RS mid+1,r,rson #define UP(i,x,y) for(i=x;i<=y;i++) #define DOWN(i,x,y) for(i=x;i>=y;i--) #define MEM(a,x) memset(a,x,sizeof(a)) #define W(a) while(a) #define gcd(a,b) __gcd(a,b) #define LL long long #define N 5000005 #define INF 0x3f3f3f3f #define EXP 1e-8 #define lowbit(x) (x&-x) const int mod = 1e9+7; LL n,k,w; int main() { int i; LL sum = 0; scanf("%I64d%I64d%I64d",&k,&n,&w); for(i = 1;i<=w;i++) sum +=i*k; if(n>=sum) printf("0\n"); else printf("%I64d\n",sum-n); return 0; }
时间: 2024-10-11 16:09:20