package dancinggooglers;

import java.io.File;
import java.util.Scanner;

public class DanceScoreCalculator {


    public static void main(String[] args) {
        if(args.length <= 0 || args[0] == null) {
            System.out.println("You must enter a file to read");
            System.out.println("Usage: blah <filename>");
            System.exit(0);
        }

        File argFile = new File(args[0]);
        try {
            Scanner googleSpeakScanner = new Scanner(argFile);
            String firstLine = googleSpeakScanner.nextLine();
            Integer linesToScan = new Integer(firstLine);
            for(int i = 1; i <= linesToScan; i++) {
                String googleDancerLine = googleSpeakScanner.nextLine();
                DanceScoreCase danceCase = new DanceScoreCase(googleDancerLine);
                System.out.println(String.format("Case #%d: %d", i, danceCase.maxDancersThatCouldPass()));
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

import java.io.*;
import java.util.Scanner;


public class SurprisingDancers {
	public static void main(String[] args) {
		BufferedReader br;
		BufferedWriter bw;
		int count;
		try
		{	
			br = new BufferedReader(new FileReader(args[0]));
			bw = new BufferedWriter(new FileWriter(new File("output.txt")));
			count = new Integer(br.readLine());
			for(int i = 1; i <= count; i++)
			{
				try
				{					
					bw.write("Case #" + i + ": ");
					Scanner intReader = new Scanner(br.readLine());
					int numGooglers = intReader.nextInt();
					int numSurprises = intReader.nextInt();
					int p = intReader.nextInt();
					int ans = 0;
					for(int j = 1; j <= numGooglers; j++)
					{
						int score = intReader.nextInt();
						if((score/3) >= p)
						{
							ans++;
						}
						else
						{
							if(score % 3 == 0 && score > 0)
							{
								if((score/3 + 1) >= p)
								{
									if(numSurprises > 0)
									{
										numSurprises--;
										ans++;
									}
								}									
							}
							if(score % 3 == 1)
							{
								if((score/3 + 1) >= p)
								{
									ans++;
								}
							}
							if(score % 3 == 2)
							{
								if((score/3 + 1)  >= p)
								{
									ans++;
								}
								else if((score/3 + 2) >= p)
								{
									if(numSurprises > 0)
									{
										numSurprises--;
										ans++;
									}
								}
							}
						}
					}
					String stringAns = "" + ans;
					bw.write(stringAns);
					bw.newLine();
				}
				catch(IOException e)
				{
					System.out.println("Error reading line.");
				}
			}
			br.close();
			bw.close();
		}
		catch(FileNotFoundException e)
		{
			System.out.println("File not found.");
		}
		catch(IOException e)
		{
			System.out.println("Error reading first line or creating output.");
		}
	}

}
