0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-11-27 15:16:28 +00:00

D - Required Length

https://codeforces.com/contest/1681/submission/158228515
This commit is contained in:
Baoshuo Ren 2022-05-24 01:00:11 +08:00
parent 2293bcdc2b
commit 7c418cef40
Signed by: baoshuo
GPG Key ID: 70F90A673FB1AB68

53
Codeforces/1681/D/D.cpp Normal file
View File

@ -0,0 +1,53 @@
#pragma GCC optimize("Ofast")
#include <cmath>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using std::cin;
using std::cout;
const char endl = '\n';
long long n, x;
std::map<long long, int> map;
inline int len(long long x) {
if (x == 0) return 0;
return (int)log10(x) + 1;
}
int dfs(long long x) {
if (map.count(x)) return map[x];
map[x] = 0x3f3f3f3f;
std::vector<int> a;
long long t = x;
while (t) {
a.push_back(t % 10);
t /= 10;
}
if (a.size() == n) return map[x] = 0;
for (int i : a) {
map[x] = std::min(map[x], dfs(x * i) + 1);
}
return map[x];
}
signed main() {
std::ios::sync_with_stdio(false);
cin >> n >> x;
int ans = dfs(x);
cout << (ans == 0x3f3f3f3f ? -1 : ans) << endl;
return 0;
}