[UVA] 12527 - Different Digits
The Queen of Nlogonia ordered a new seaside avenue to be built, and wants to assign to the new houses only numbers without repeated digits, to avoid discomfort among her subjects. You have been appointed by Her Majesty to write a program that, given two integers N and M, determines the maximum number of houses that can be assigned street numbers between N and M, inclusive, that do not have repeated digits.
Input
Each test case is described using one line. The line contains two integers N and M, as described above ( 1NM5000).
Output
For each test case output a line with an integer representing the number of street house numbers between N and M, inclusive, with no repeated digits.
Sample Input
87 104 989 1022 22 25 1234 1234
Sample Output
14 0 3 1
#include <stdio.h>
int main() {
int n, m;
int ok[5001] = {};
for(n = 1; n <= 5000; n++) {
char used[10] = {};
m = n;
while(m) {
if(used[m%10]) break;
used[m%10] = 1;
m /= 10;
}
if(m == 0) ok[n] = 1;
ok[n] += ok[n-1];
}
while(scanf("%d %d", &n, &m) == 2) {
printf("%d\n", ok[m]-ok[n-1]);
}
return 0;
}