Problem:
Score : 200 points

Problem Statement

Snuke has come to a store that sells boxes containing balls. The store sells the following three kinds of boxes:

Red boxes, each containing R red balls

Green boxes, each containing G green balls

Blue boxes, each containing B blue balls

Snuke wants to get a total of exactly N balls by buying r red boxes, g green boxes and b blue boxes.
How many triples of non-negative integers (r,g,b) achieve this?

Constraints

All values in input are integers.

1 \leq R,G,B,N \leq 3000

Input

Input is given from Standard Input in the following format:

R G B N

Output

Print the answer.

Sample Input 1

1 2 3 4

Sample Output 1

4

Four triples achieve the objective, as follows:

(4,0,0)

(2,1,0)

(1,0,1)

(0,2,0)

Sample Input 2

13 1 4 3000

Sample Output 2

87058

Solution in C (Clang 3.8.0) (judge verdict: Time Limit Exceeded)

#include <stdio.h>

int main(){
	int R, G, B, N, ans = 0, i,j,k,N_R,N_G,N_B;
  	scanf("%d %d %d %d\n", &R, &G, &B, &N);
  	N_R = N/R;
  	N_G = N/G;
  	N_B = N/B;
  	for(i = 0; i <= N_R; i++){
    	/*if(R*i + G*j + B*k == N){
      		ans++;
         	printf("%d %d %d\n",i,j,k);
      	}*/
        //printf("i:%d j:%d k:%d N:%d\n",i,j,k,R*i+G*j+B*k);
    	for(j = 0; j <= N_G; j++){
        	/*if(R*i + G*j + B*k == N){
                	ans++;
              		printf("%d %d %d\n",i,j,k);
                }*/
        	for(k = 0; k <= N_B; k++){
            	if(R*i + G*j + B*k == N){
                	ans++;
                  	//printf("%d %d %d\n",i,j,k);
                }
            }
        }
    }
  	printf("%d\n",ans);
}