Hello Programmers, In this post, you will know how to solve the HackerRank Halloween Sale Solution. This problem is a part of the HackerRank Algorithms Series.
One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.
HackerRank Halloween Sale Solution
Task
You wish to buy video games from the famous online video game store Mist.
Usually, all games are sold at the same price, p dollars. However, they are planning to have the seasonal Halloween Sale next month in which you can buy games at a cheaper price. Specifically, the first game will cost p dollars, and every subsequent game will cost d dollars less than the previous one. This continues until the cost becomes less than or equal to m dollars, after which every game will cost m dollars. How many games can you buy during the Halloween Sale?
Example
p = 20
d = 3
m = 6
s = 70
The following are the costs of the first 11, in order:
20, 17, 14, 11, 8, 6, 6, 6, 6, 6, 6
Start at p = 20 units cost, reduce that by d = 3 units each iteration until reaching a minimum possible price, m = 6. Starting with s = 70 units of currency in your Mist wallet, you can buy 5 games: 20 + 17 + 14 + 11 + 8 = 70.
Function Description
Complete the howManyGames function in the editor below.
howManyGames has the following parameters:
- int p: the price of the first game
- int d: the discount from the previous game price
- int m: the minimum cost of a game
- int s: the starting budget
Input Format
The first and only line of input contains four space-separated integers p, d, m and s.
Constraints
- 1 <= m <= p <= 100
- 1 <= d <= 100
- 1 <= s <= 104
Sample Input 0
20 3 6 80
Sample Output 0
6
Explanation 0
Assumptions other than starting funds, s, match the example in the problem statement. With a budget of 80, you can buy 6 games at a cost of 20 + 17 + 14 + 11 + 8 + 6 = 76. A 7th game for an additional 6 units exceeds the budget.
Sample Input 1
20 3 6 85
Sample Output 1
7
Explanation 1
This is the same as the previous case, except this time the starting budget s = 85 units of currency. This time, you can buy 7 games since they cost 20 + 17 + 14 + 11 + 8 + 6 + 6 = 82. An additional game at 6 units will exceed the budget.
HackerRank Halloween Sale Solution
Halloween Sale Solution in C
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { int num,i,valley=0; scanf("%d",&num); char steps[num]; scanf("%s",steps); int sea=0; for(i=0;i<num;i++) { if(sea==0 && steps[i]=='D') valley++; if(steps[i]=='U') sea++; else sea--; //printf("%d ",sea); } printf("%d",valley); return 0; }
Halloween Sale Solution in Cpp
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { unsigned long long int N, Sum = 0, i, Num; cin>>N; for (i = 1 ; i <= N ; i++) { cin>> Num; Sum += Num; } cout<<Sum<<endl; /* Enter your code here. Read input from STDIN. Print output to STDOUT */ return 0;
Halloween Sale Solution in Java
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner input = new Scanner(System.in); int length = input.nextInt(); int sum = 0; for(int i = 0; i < length; i++) { sum += input.nextInt(); } System.out.println(sum); }
Halloween Sale Solution in Python
n = input() arr = map(int,raw_input().split()) print sum(arr)
Halloween Sale Solution using JavaScript
function processData(input) { //Enter your code here var inputs = input.split('\n'); var arrayToSum = inputs[1].split(' '); var sum = 0; for (var i = 0; i < arrayToSum.length; i++) { sum += parseInt(arrayToSum[i], 10); } console.log(sum); } process.stdin.resume(); process.stdin.setEncoding("ascii"); _input = ""; process.stdin.on("data", function (input) { _input += input; }); process.stdin.on("end", function () { processData(_input); });
Halloween Sale Solution in Scala
bject Solution { def main(args: Array[String]) { val lines = io.Source.stdin.getLines val sum = lines.drop(1).next.split(" ").toList.map( _.toInt ).sum println(sum) }
Halloween Sale Solution in Pascal
(* Enter your code here. Read input from STDIN. Print output to STDOUT *) var n, s, x: longint; begin readln(n); s:= 0; while n>0 do begin read(x); inc(s,x); dec(n); end; writeln(s); end.
Disclaimer: This problem (Halloween Sale) is generated by HackerRank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.
Next: HackerRank The Time in Words Solution