Go: package main

import "fmt"

func main() {
	var n int

	for {
		result := 0
		_, err := fmt.Scanf("%d", &n)
		if err != nil {
			return
		}

		if n <= 36 {
			for a := 9; a >= 0; a-- {
				for b := 9; b >= 0; b-- {
					for c := 9; c >= 0; c-- {
						for d := 9; d >= 0; d-- {
							if a+b+c+d == n {
								// fmt.Println(a, b, c, d)
								result++
							}
						}
					}
				}
			}
		}
		fmt.Println(result)
	}
}

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;
	}
}

C++: #include <list>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <utility>
#include <functional>
#include <sstream>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <climits>
using namespace std;
inline int toInt(string s) { int v; istringstream sin(s); sin >> v; return v;}
template<class T> inline string toString(T x) { ostringstream sout; sout << x; return sout.str();}
typedef vector<int> vi;
typedef vector<vi>  vvi;
typedef vector<string> vs;
typedef pair<int, int> pii;
typedef long long ll;
#define ALL(a) (a).begin(),(a).end()
#define RALL(a) (a).rbegin(),(a).rend()
#define EACH(t,i,c) for(t::iretator i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define REP(i,n) FOR(i,0,n-1)
const double EPS = 1e-12;
const double PI = acos(-1.0);

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

	return 0;
}