Description
It seems like the year of 2013 came only yesterday. Do you know a curious fact? The year of 2013 is the first year after the old 1987 with only distinct digits.
Now you are suggested to solve the following problem: given a year number, find the minimum year number which is strictly larger than the given one and has only distinct digits.
Input
The single line contains integer y(1000 ≤ y ≤ 9000) — the year number.
Output
Print a single integer — the minimum year number that is strictly larger than y and all it's digits are distinct. It is guaranteed that the answer exists.
Sample Input
Input
1987
Output
2013
Input
2013
Output
2014
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int i, y, yn[4], c, d, a[10] = {0};
scanf("%d", &y);
c = y;
c++;
while(1)
{
d = c;
for( i=0; i<4; i++ )
{
yn[i] = d%10;
if( !a[yn[i]] )
a[yn[i]] = 1;
else
break;
d = d/10;
}
if( 4 == i )
{
printf("%d\n", c);
break;
}
memset(a, 0, sizeof(a));
c++;
}
return 0;
}
签到大水题。。。