#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; typedef vector > grid; ll INF = LLONG_MAX / 3; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int calc(vector lb, vector ub, int tot) { for (int i = 0; i < 4; i++) { tot -= lb[i]; ub[i] -= lb[i]; if (ub[i] < 0) return 0; } if (tot < 0) return 0; vector dp(tot + 1); dp[0] = 1; for (int x: ub) { for (int y = tot; y >= x + 1; y--) dp[y] -= dp[y - x - 1]; for (int y = 1; y <= tot; y++) dp[y] += dp[y - 1]; } return dp[tot]; } int main() { double X; cin >> X; int tot = X * 4 + 0.5; ll ans = 0; for (int i = 0; i < 6; i++) for (int j = 0; j < 6; j++) { if (i == j) continue; for (int mi = 0; mi <= 100; mi++) for (int ma = (i < j ? mi : mi + 1); ma <= 100; ma++) { vector lb, ub; for (int k = 0; k < 6; k++) { if (k == i || k == j) continue; lb.push_back(k < i ? mi + 1 : mi); ub.push_back(k < j ? ma - 1 : ma); } ans += calc(lb, ub, tot); } } cout << ans << endl; }