AOJ volume 10017 How many ways?

import java.util.ArrayList;
import java.util.Scanner;

public class HowManyWays {
	private static Scanner sc = new Scanner(System.in);
	private static ArrayList<Integer> result = new ArrayList<Integer>();
	
	public static void main(String[] args) {
		
		while(sc.hasNextLine()){
		//入力を受け取る
			int  maxNumber= sc.nextInt();
			int sum = sc.nextInt();
			
			if(maxNumber == 0 && sum == 0){
				break;
			}
			
		//求めた合計と和が同じ値になる3つの数の組み合わせを求め
		//結果リストに追加する
			setNumCombinations(maxNumber, sum);
		}
		
		//結果を出力する
		printAllNumCombinations();
	}
	
	private static int findCombinations(int maxNumber, int sum){
		int numCombinations = 0;
		for(int i = 1; i < maxNumber - 1; i++){
			for(int j = i + 1; j < maxNumber; j++){
				for(int k = j + 1; k < maxNumber + 1; k++){
					if(isSame(i, j, k, sum)){
						numCombinations++;
					}
				}
			}
		}
		return numCombinations;
	}
	
	private static boolean isSame(int a, int b, int c, int sum){
		if(sum == a + b + c){
			return true;
		}
		else{
			return false;
		}
	}
	
	private static void setNumCombinations(int maxNumber, int sum){
		result.add(findCombinations(maxNumber, sum));
	}
	
	private static void printNumCombinations(int i){
		System.out.println(result.get(i));
	}
	
	private static void printAllNumCombinations(){
		for(int i = 0; i < result.size(); i++){
			printNumCombinations(i);
		}
	}
}