C - Iroha's Obsession
用一个 \(\rm st\) 数组把每一位标记,然后枚举大于 \(n\) 的数,一旦有各位都满足要求的数出现就 \(\rm break\)。
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
bool st[10];
bool check(int x) {
while (x) {
int b = x % 10;
if (st[b]) return false;
x /= 10;
}
return true;
}
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
int n, k;
cin >> n >> k;
vector<int> D(k);
for (int i = 0; i < k; i++) {
cin >> D[i];
st[D[i]] = true;
}
for (int i = n; ; i++) {//规定n<=1e4,但要求输出的≥n,可以在1e4以上。因此这里不需规定上限。
if (check(i)) {
cout << i;
break;
}
}
return 0;
}
标签:AtCoder,false,Beginner,10,int,Contest,cin,st,042
From: https://www.cnblogs.com/pangyou3s/p/18283221