Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <algorithm>
- #include <unordered_map>
- #include <map>
- #include <set>
- #include <iomanip>
- int main() {
- std::string s;
- std::cin >> s;
- int k;
- std::cin >> k;
- int cnt = s.size();
- long double kek = 0, kek_last = 1;
- for (size_t i = 0; i < k; i++) {
- kek = kek * (cnt - 2) / cnt + (1 - kek) * 2 / (cnt * (cnt - 1));
- kek_last = kek_last * (cnt - 2) / cnt + (1 - kek_last) * 2 / (cnt * (cnt - 1));
- }
- int sum = 0;
- for (char c : s) {
- sum += c - '0';
- }
- long double res = 0;
- for (size_t i = 0; i < s.size() - 1; i++) {
- if (s[i] == '5' || ((s[i] - '0') % 2 == 0 && sum % 3 == 0)) {
- res += kek;
- }
- }
- if (s.back() == '5' || ((s.back() - '0') % 2 == 0 && sum % 3 == 0)) {
- res += kek_last;
- }
- std::cout << std::fixed << std::setprecision(10);
- std::cout << res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement