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,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: 2-+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.

**Sample Input 0**

20 3 6 80

**Sample Output 0**

6

## Halloween Sale HackerRank Solution in C

#include <stdio.h> #include <string.h> #include <stdlib.h> int howManyGames(int p, int d, int m, int s) { int games = 0; while((s-p) >= 0) { s = s - p; games++; if((p - d) >= m) p = p - d; else p = m; } return games; } int main() { int p; int d; int m; int s; scanf("%i %i %i %i", &p, &d, &m, &s); int answer = howManyGames(p, d, m, s); printf("%d\n", answer); return 0; }

## Halloween Sale HackerRank Solution in C++

#include <bits/stdc++.h> using namespace std; int howManyGames(int p, int d, int m, int s) { int res = 0; while (p <= s) { res++; s -= p; p = max(m, p - d); } return res; } int main() { int p; int d; int m; int s; cin >> p >> d >> m >> s; int answer = howManyGames(p, d, m, s); cout << answer << endl; return 0; }

## Halloween Sale HackerRank Solution in Java

import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int howManyGames(int p, int d, int m, int s) { int count = 0; int nextPrice = p; while(s >= nextPrice) { count++; s -= nextPrice; nextPrice = Math.max(nextPrice-d, m); } return count; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int p = in.nextInt(); int d = in.nextInt(); int m = in.nextInt(); int s = in.nextInt(); int answer = howManyGames(p, d, m, s); System.out.println(answer); in.close(); } }

## Halloween Sale HackerRank Solution in Python

p,d,m,s = map(int,raw_input().split()) ans = 0 while s>0: s -= p p -= d if p<=m: p = m if s<0: break ans += 1 print ans

## Halloween Sale HackerRank Solution in C#

using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static int howManyGames(int p, int d, int m, int s) { int res=0; int x=p; while(s>=0) { s-=x; x-=d; if(x<m) x=m; res++; } return res-1; } static void Main(String[] args) { string[] tokens_p = Console.ReadLine().Split(' '); int p = Convert.ToInt32(tokens_p[0]); int d = Convert.ToInt32(tokens_p[1]); int m = Convert.ToInt32(tokens_p[2]); int s = Convert.ToInt32(tokens_p[3]); int answer = howManyGames(p, d, m, s); Console.WriteLine(answer); } }

**Attempt Halloween Sale HackerRank Challenge**

Link – https://www.hackerrank.com/challenges/halloween-sale/

**Next HackerRank Challenge Solution **

Link – https://exploringbits.com/the-time-in-words-hackerrank-solution/

Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.