Go: package main
import (
	"fmt"
	"os"
	"strconv"
	"bufio"
)

var sc = bufio.NewScanner(os.Stdin)

func main(){
	for sc.Scan(){
		n := nextInt()
		cnt := 0
		// 37以上のとき組み合わせは存在しないが省くのめんどくさいのでまとめて計算
		for a:=0; a<=9; a++{
			for b:=0; b<=9; b++{
				for c:=0; c<=9; c++{
					for d:=0; d<=9; d++{
						if a+b+c+d==n{
							cnt++
						}
					}
				}
			}
		}
		fmt.Println(cnt)
	}
}

func next()string{
	//sc.Scan()
	return sc.Text()
}

func nextInt()int{
	a, _ := strconv.Atoi(next())
	return a
}

C++: //  0008.cpp
//  2012/09/03.

#if 1

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cassert>
#include <iostream>
#include <cctype>
#include <sstream>
#include <string>
#include <list>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <iterator>
#include <bitset>
#include <complex>
#include <fstream>
using namespace std;
typedef long long ll;
const double EPS = 1e-9;
typedef vector<int> vint;
typedef pair<int, int> pint;
#define rep(i, n) REP(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define MSG(a) cout << #a << " " << a << endl;
#define REP(i, x, n) for(int i = x; i < n; i++)
template<class T> T RoundOff(T a){ return int(a+.5-(a<0)); }
template<class T, class C> void chmax(T& a, C b){ if(a < b) a = b; }
template<class T, class C> void chmin(T& a, C b){ if(b < a) a = b; }
template<class T, class C> pair<T, C> mp(T a, C b){ return make_pair(a, b); }

int main()
{
    int n;
	while(cin >> n)
	{
		int res = 0;
		rep(a, 10) rep(b, 10) rep(c, 10) rep(d, 10) if(a + b + c + d == n) res++;
		cout << res << endl;
	}
}

#endif

C++: #include <iostream>
using namespace std;

int main(){
	int n[36]={};
	int m;
	for(int a=0; a<10; a++){
		for(int b=0; b<10; b++){
			for(int c=0; c<10; c++){
				for(int d=0; d<10; d++){
					n[a+b+c+d-1]+=1;
				}
			}
		}
	}

	while(cin>>m){
		if(m>36){
			cout << "0" << endl;
			continue;
		}
		cout << n[m-1] << endl;
	}

	return 0;
}

C++: #include<iostream>

using namespace std;

#define MAX 256

int kai (int x){
	if(x == 1 || x == 0)return 1;
	return x * kai(x - 1);
}

int miku(int x){
	if(x > 36)return 0;
	if(x < 10)return kai(x + 3) / ( kai(x) * 6);
	if(x > 19)return miku(36 - x);
	if(x > 9 && x < 19)return kai(x + 3) / ( kai(x) * 6) - (miku(x - 10) * 4);
}

int main(void){
	int n,i = 0;
	int ans[MAX];
	
	while((n = cin.get()) != istream::traits_type::eof()){
		ans[i] = miku(n);
		i++;
	}
	
	for(int j = 0;j < i;j++){
		cout << ans [j] <<endl;
	}

	return 0;
}

C++: #include<cstdio>

int solve(int a,int b){
 
 if(b==4){
  if(a==0) return 1;
  else return 0; 
 }
 else{
  int res=0;
  for(int i=0;i<=a&&i<10;i++){
   res+=solve(a-i,b+1);
  }
  return res;
 }
}

int main(){
 int n;
 while(~scanf("%d",&n)){
  printf("%d\n",solve(n,0));
}
return 0;
}

C++: 
#include <iostream>
using namespace std;
#define MAX_N 4000
int num[MAX_N/2+1];

int main(int argc, char const *argv[]){
  for(int i=0;i<=MAX_N/4;i++){
    for(int j=0;j<=MAX_N/4;j++){
      num[i+j]++;
    }
  }
  int n;
  while(cin>>n){
    int ans=0;
    for(int i=0;i<=MAX_N/2;i++){
      int cd = n-i;
      if(cd<0)break;
      if(cd>2000)continue;
      ans += num[i] * num[cd];
    }
    cout<<ans<<endl;
  }
  return 0;
}

C++: #include<iostream>
#include<cmath>

#define N 100000

using namespace std;


int main(void){

  int n,count = 0;
  while(cin >> n){

    for(int i = 0; i <= 9;i++){
      for(int j = 0; j <= 9;j++){
        for(int k = 0; k <= 9;k++){
          for(int l = 0 ;l <= 9;l++){
            if(n == i+j+k+l){
              count++;
            }
          }
        }
      }
    }
    cout << count << endl;
    count = 0;
  }



  return 0;
}

C++: #include <stdio.h>

int
main(void)
{
	char line[80];
	int n;

	while (fgets(line, sizeof line, stdin)) {
		if (sscanf(line, "%d", &n) == 1) {
			int r = 0;
				
			for (int a = 0; a <= 9; a++) {
				for (int b = 0; b <= 9; b++) {
					for (int c = 0; c <= 9; c++) {
						for (int d = 0; d <= 9; d++) {
							if (a + b + c + d == n) {
								r ++;
							}
						}
					}
				}
			}

			printf("%d\n", r);
		}
	}

	return 0;
}

C++: #include <stdio.h>

int main()
{
    int a, b, c, d, n, result;
    
    while (scanf("%d", &n) != EOF) {
        result = 0;
        
        for (a = 0; a <= 9; a++) {
            for (b = 0; b <= 9; b++) {
                for (c = 0; c <= 9; c++) {
                    for (d = 0; d <= 9; d++) {
                        if (a + b + c + d == n) {
                            result++;
                        }
                    }
                }
            }
        }
        
        printf("%d\n", result);
    }
    
    return 0;
}

C++: #include <bits/stdc++.h>

#define reps(v, f, l) for (int v = (f), v##_ = (l); v < v##_; ++v)
#define rep(v, n) reps(v, 0, n)
#define lep(v, n) reps(v, 1, n + 1)
#define rreps(v, f, l) for (int v = (l), v##_ = (f); v >= v##_; --v)
#define rrep(v, n) rreps(v, 0, n - 1)
#define rlep(v, n) rreps(v, 1, n)
#define show_a(a, size) rep(a##_it, size) std::cout << a[a##_it] << " \n"[a##_it == a##_it_ - 1];
#define show_v(v) show_a(v, v.size())
#define debug(x) std::cerr << #x << " = " << (x) << "\n";

using namespace std;

typedef long long int lint;

static inline int in(){ int x; scanf("%d", &x); return x; }
static inline lint inl(){ lint x; scanf("%lld", &x); return x; }

int main()
{
  int dp[5][99] = {};
  dp[0][0] = 1;
  lep(i, 4){
    rep(j, 99){
      rep(k, 10){
        if (j - k < 0) continue;
        dp[i][j] += dp[i - 1][j - k];
      }
    }
  }
  int n;
  while (~scanf("%d", &n)){
    printf("%d\n", dp[4][n]);
  }

  return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
  int a,b,c,d,e,n,ans=0;
  while(cin >> n ){
  for(int i=0;i<=9;i++){
    for(int j=0;j<=9;j++){
      for(int k=0;k<=9;k++){
        for(int l=0;l<=9;l++){
          if(i+j+k+l==n){
            ans++;
        }
        }
      }
    }
  }
        cout << ans << endl;
        ans =0;
}
}

C++: #include <iostream>

int main() {
  int n;
  
  while(std::cin >> n) {
    int result = 0;

    for(int a = 0; a < 10; ++a) {
      for(int b = 0; b < 10; ++b) {
        for(int c = 0; c < 10; ++c) {
          for(int d = 0; d < 10; ++d) {

            if((a + b + c + d) == n) {
              ++result;
            }

          }
        }
      }
    }

    std::cout << result << std::endl;
  }
}

C++: #include<iostream>
#include<vector>
#include<algorithm>
#include<string>

#define add push_back
#define inf 2147000000

#define rep(i,n) for(int i=0;i<n;i++)
#define deb(a) cout<<a<<endl
#define out(a) cout<<a<<endl;

using namespace std;

int main(void){
	int a;
	int cont;
	while(scanf("%d",&a)!=EOF){
		cont=0;
	rep(i,10)rep(j,10)rep(k,10)rep(l,10){
		if(i+j+k+l == a){
			cont++;
		}
	}
	cout<<cont<<endl;
	}
}