AtCoder Regular Contest 058 C - こだわり者いろはちゃん / Iroha's Obsession

,

https://beta.atcoder.jp/contests/arc058/tasks/arc058_a

なんだかうだうだやってたら少し時間がかかったが、冷静になれば完全にやるだけ。

solution

愚直に試せばよい。$O(N\log N)$。

$N$の桁数$+1$までの中に必ず答えはある。

implementation

#include <cstdio>
#include <vector>
#include <algorithm>
#include <string>
#define repeat(i,n) for (int i = 0; (i) < (n); ++(i))
#define whole(f,x,...) ([&](decltype((x)) y) { return (f)(begin(y), end(y), ## __VA_ARGS__); })(x)
using namespace std;
int main() {
    int n, k; scanf("%d%d", &n, &k);
    vector<char> d(k); repeat (i,k) scanf(" %c", &d[i]);
    int i = n;
    for (; ; ++ i) {
        string s = to_string(i);
        bool invalid = false;
        for (char c : s) {
            if (whole(count, d, c)) {
                invalid = true;
                break;
            }
        }
        if (not invalid) {
            break;
        }
    }
    printf("%d\n", i);
    return 0;
}