aebosnak
aebosnak

Reputation: 100

Getting wrong answer in test set 1 even though my code works for samples (Google Kickstart 2020 Round A)

My code works well for samples and other examples I tried on my IDE but it doesn't work for the test case for some reason. I don't know how to use arrays as we haven't yet covered them in class and I wanted to see if I could solve it with just loops and if-else. Any help is appreciated.

Here's the description of the problem:

Problem There are N houses for sale. The i-th house costs Ai dollars to buy. You have a budget of B dollars to spend.

What is the maximum number of houses you can buy?

Input The first line of the input gives the number of test cases, T. T test cases follow. Each test case begins with a single line containing the two integers N and B. The second line contains N integers. The i-th integer is Ai, the cost of the i-th house.

Output For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the maximum number of houses you can buy.

Limits Time limit: 15 seconds per test set. Memory limit: 1GB. 1 ≤ T ≤ 100. 1 ≤ B ≤ 105. 1 ≤ Ai ≤ 1000, for all i. Test set 1 1 ≤ N ≤ 100. Test set 2 1 ≤ N ≤ 105. Sample

Input

Output

3 4 100 20 90 40 90 4 50 30 30 10 10 3 300 999 999 999

Case #1: 2 Case #2: 3 Case #3: 0

In Sample Case #1, you have a budget of 100 dollars. You can buy the 1st and 3rd houses for 20 + 40 = 60 dollars. In Sample Case #2, you have a budget of 50 dollars. You can buy the 1st, 3rd and 4th houses for 30 + 10 + 10 = 50 dollars. In Sample Case #3, you have a budget of 300 dollars. You cannot buy any houses (so the answer is 0).

Here's my code:

import java.util.Scanner;
public class Solution {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int testCases;
        int numberHouses;
        int budget;
        int costHouse;
        int howMany = 0;

        int totalCost;

        testCases = sc.nextInt();

        //loop for each test case
        for (int i=0; i < testCases; i++) {
            numberHouses = sc.nextInt();
            budget = sc.nextInt();

            howMany = 0;
            totalCost = 0;

            //loop for looking at house prices
            for (int j=0; j < numberHouses; j++) {
                costHouse = sc.nextInt();
                totalCost += costHouse;

                if ( totalCost <= budget ) {
                    howMany++;
                }
                else {
                    totalCost -= costHouse;
                }
            }
            System.out.println("Case #"+ (i+1) + ": " + howMany);
        }
    }
}

Upvotes: 0

Views: 453

Answers (0)

Related Questions