Problem:
Score : 200 points

Problem Statement

Find the sum of the integers between 1 and N (inclusive), whose sum of digits written in base 10 is between A and B (inclusive).

Constraints

1 \leq N \leq 10^4

1 \leq A \leq B \leq 36

All input values are integers.

Input

Input is given from Standard Input in the following format:

N A B

Output

Print the sum of the integers between 1 and N (inclusive), whose sum of digits written in base 10 is between A and B (inclusive).

Sample Input 1

20 2 5

Sample Output 1

84

Among the integers not greater than 20, the ones whose sums of digits are between 2 and 5, are: 2,3,4,5,11,12,13,14 and 20. We should print the sum of these, 84.

Sample Input 2

10 1 2

Sample Output 2

13

Sample Input 3

100 4 16

Sample Output 3

4554

Solution in C (Clang 10.0.0) (judge verdict: Wrong Answer)

#include<stdio.h>
int main(void) {
    int N;
    int A, B;
    int sum1, sum10, sum100, sum1000; //一の位, 十の位, 百の位, 千の位
    int sumN; //各桁の和
    int sum = 0; //総和

    scanf("%d %d %d", &N, &A, &B);

    for (int n = 1; n <= N; n++) {
        if (1 <= n && n < 10) {
            sum1 = n;
            sumN = sum1;
        }
        else if (10 <= n && n < 100) {
            sum10 = n / 10;
            sum1 = n - sum10 * 10;
            sumN = sum10 + sum1;
        }
        else if (100 <= n && n < 1000) {
            sum100 = n / 100;
            sum10 = (n - sum100 * 100) / 10;
            sum1 = (n - sum100 * 100) - sum10 * 10;
            sumN = sum100 + sum10 + sum1;
        }
        else if (1000 <= n && n < 10000) {
            sum1000 = n / 1000;
            sum100 = (n - sum1000 * 1000) / 100;
            sum10 = ((n - sum1000 * 1000) - sum100 * 100) / 10;
            sum1 = ((n - sum1000 * 1000) - sum100 * 100) - sum10 * 10;
            sumN = sum1000 + sum100 + sum10 + sum1;
        }
        if (1 <= A && A <= B && B <= 36) {
            if (A <= sumN && sumN <= B) {
                sum += n;
            }
        }
        sum1 = 0;
        sum10 = 0;
        sum100 = 0;
        sum1000 = 0;
    }
    printf("%d", sum);
    return 0;
}