Beautiful Year
题面翻译
给定一个年份n,输出大于n的第一个四位数字都不相同的年份。
感谢@引领天下 提供的翻译
题目描述
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.
输入格式
The single line contains integer $ y $ $ (1000<=y<=9000) $ — the year number.
输出格式
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.
样例 #1
样例输入 #1
1987
样例输出 #1
2013
样例 #2
样例输入 #2
2013
样例输出 #2
2014
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[10];
int main()
{
ll n;
cin>>n;
while(n++)
{
ll t=n;
bool f=0;
memset(a,0,sizeof a);
while(t)
{
a[t%10]++;
t/=10;
}
for(ll i=0;i<10;i++)
{
if(a[i]>1) f=1;
}
if(f) continue;
break;
}
cout<<n<<endl;
return 0;
}