Problem:
４つの整数の和 II

4,000 以下の正の整数 n を入力し、0 〜 1000 の範囲の整数 a, b, c, d の組で

a + b + c + d = n

を満たすものの組み合わせ数を出力するプログラムを作成して下さい。

Input

複数のデータセットが与えられます。各データセットに n が１行に与えられます。入力の最後まで処理して下さい。

データセットの数は 50 を超えません。

Output

各データセットごとに、a, b, c, d の組み合わせの個数を１行に出力して下さい。

Sample Input

2
3
35

Output for the Sample Input

10
20
8436

Solution in Ruby (judge verdict: Accepted)

# encoding: utf-8                                                            

def solve2 n
  if n <= 1000
    n + 1
  else
    1000 - n % 1001
  end
end

def solve n
  ans = 0
  (0..n).each do |k|
    if n - k <= 2000 and k <= 2000
      ans += solve2(k) * solve2(n - k)
    end
  end  
  ans
end

while n = gets
  n = n.rstrip.to_i
  puts "#{solve(n)}"
end