mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-30 15:56:27 +00:00
D - Required Length
https://codeforces.com/contest/1681/submission/158228515
This commit is contained in:
parent
2293bcdc2b
commit
7c418cef40
53
Codeforces/1681/D/D.cpp
Normal file
53
Codeforces/1681/D/D.cpp
Normal 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user