Problem:
Sum of 4 Integers

Write a program which reads an integer n and identifies the number of combinations of a, b, c and d (0 ≤ a, b, c, d ≤ 9) which meet the following equality:

a + b + c + d = n

For example, for n = 35, we have 4 different combinations of (a, b, c, d): (8, 9, 9, 9), (9, 8, 9, 9), (9, 9, 8, 9), and (9, 9, 9, 8).

Input

The input consists of several datasets. Each dataset consists of n (1 ≤ n ≤ 50) in a line. The number of datasets is less than or equal to 50.

Output

Print the number of combination in a line.

Sample Input

35
1

Output for the Sample Input

4
4

Solution in JAVA (judge verdict: Wrong Answer)

import static java.lang.Integer.parseInt;
import static java.lang.System.out;
import java.io.File;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main extends BaseExe {

    public static void main(String[] args) {
        new Main().exeSysIn();
    }

    @Override
    protected void execute(Scanner scan) {
        String inDataStr;
        while (scan.hasNextLine() && !"".equals(inDataStr = scan.nextLine())) {
            int combi = getCombi(getSumTwo(), getSumTwo(), parseInt(inDataStr));
            out.println(combi);
        }
    }

    private int getCombi(int[] abList, int[] cdList, int inData) {
        int combi = 0;
        for (int ab : abList) {
            for (int cd : cdList) {
                combi = (judgeSum(ab, cd, inData)) ? combi + 2 : combi;
            }
        }
        return combi;
    }

    private boolean judgeSum(int ab, int cd, int inData) {
        return (ab == inData - cd) ? true : false;
    }

    private int[] getSumTwo() {
        Set<Integer> sumList = new HashSet<>();
        for (int i = 0; i < 10; i++) {
            for (int j = i; j < 10; j++) {
                sumList.add(i + j);
            }
        }
        return setToArray(sumList);
    }

    private int[] setToArray(Set<Integer> sumList) {
        int abList[] = new int[19];
        int index = 0;
        for (int num : sumList) {
            abList[index++] = num;
        }
        return abList;
    }
}

abstract class BaseExe {

    public void exeSysIn() {
        try (Scanner scan = new Scanner(System.in)) {
            execute(scan);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void exeFileIn(String inDataPath) {
        try (Scanner scan = new Scanner(new File(inDataPath))) {
            execute(scan);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    protected abstract void execute(Scanner scan);
}