package com.gcj.parser;

public class MaxPoints {

	public static int normal(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 1 ; break;
		case 3 : toReturn = 1 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 2 ; break;
		case 6 : toReturn = 2 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 3 ; break;
		case 9 : toReturn = 3 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 4 ; break;
		case 12 : toReturn = 4 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 5 ; break;
		case 15 : toReturn = 5 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 6 ; break;
		case 18 : toReturn = 6 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 7 ; break;
		case 21 : toReturn = 7 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 8 ; break;
		case 24 : toReturn = 8 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 9 ; break;
		case 27 : toReturn = 9 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}

		return toReturn;
	}

	public static int surprising(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 2 ; break;
		case 3 : toReturn = 2 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 3 ; break;
		case 6 : toReturn = 3 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 4 ; break;
		case 9 : toReturn = 4 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 5 ; break;
		case 12 : toReturn = 5 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 6 ; break;
		case 15 : toReturn = 6 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 7 ; break;
		case 18 : toReturn = 7 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 8 ; break;
		case 21 : toReturn = 8 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 9 ; break;
		case 24 : toReturn = 9 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 10 ; break;
		case 27 : toReturn = 10 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}
		return toReturn;
	}

}

package myPackage;

import java.io.File;
import java.io.FileWriter;
import java.util.Arrays;
import java.util.Scanner;
import java.util.TreeSet;
import java.util.TreeMap;
import java.util.*;
import java.math.*;
public class GooglersDance {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int totalTestCases;
		int N,S,P,count=0,sCount=0;
		int[] scores;
		//TreeSet charTree = new TreeSet();
		//TreeSet <Integer> scores = new TreeSet <Integer>();
		try
		{
			File myInputFile =  new File("F:\\COEP\\Google\\CodeJam\\GooglersDance\\large.in");
			File myOutputFile =  new File("F:\\COEP\\Google\\CodeJam\\GooglersDance\\large.out");
			Scanner myScan = new Scanner (myInputFile);
			FileWriter myFw = new FileWriter(myOutputFile);
			
			totalTestCases = myScan.nextInt();
			String english = new String();
			english = myScan.nextLine();
			//System.out.println("Index of e : " + charMap.get("e") );
			
			for (int i=0 ; i<totalTestCases ; i++)
			{
				N = myScan.nextInt();
				S = myScan.nextInt();
				P = myScan.nextInt();
				scores = new int[N];
				count=0;
				sCount=S;
				for (int j=0 ; j<N ; j++)
				{
					scores[j] = (Integer)myScan.nextInt() - P;
					//scores.add((Integer)myScan.nextInt()-P);
				}
				
				
				System.out.println("N:" + N + ", S:" + S + ", P:" + P + ", initial sCount: " + sCount);
				//Iterator it = scores.descendingIterator();
				int currScore;
				//while(it.hasNext())
				for (int k=0 ; k<N ; k++)
				{
					//currScore = (Integer)it.next();
					currScore = scores[k];
					System.out.println("Score :" + currScore);
					if( currScore >=0 )
					{
						if(P - (currScore / 2) <= 1)
						{
							count++;
						}
						else
						if(P - (currScore / 2) == 2 && sCount>0)
						{
							//if((currScore % 2) == 0)
							//{
								sCount--;
							//}
							count++;
						}
					}
					//it.remove();
				}
				System.out.println("Case #" + (i+1) + ": " + count + ", final sCount : " + sCount);
				myFw.append("Case #" + (i+1) + ": "+ count + "\n");		
				myFw.flush();
			}
			
			
			
			myFw.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}	
		
	}
	
	public void move(int currPeg, int finalPeg)
	{
		
	}

}
