Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <cstdio>
- #include <cassert>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- #define dbg(...) fprintf(stderr, __VA_ARGS__)
- int l, r, n, nw, st, fi;
- long long w[100005];
- int len(int k)
- {
- int res = 0;
- while (k) ++res, k /= 10;
- return res;
- }
- void gen(int i, long long num)
- {
- w[nw++] = num;
- if (i == n)
- return ;
- gen(i+1, num*10+4);
- gen(i+1, num*10+7);
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- scanf("%d %d", &l, &r);
- n = len(r)+1;
- nw = 2;
- w[0] = 4, w[1] = 7;
- gen(1, 4);
- gen(1, 7);
- sort(w, w+nw);
- long long sum = 0, k = l;
- bool ok = 0;
- for (int i = 0; i < nw; ++i)
- if (k <= w[i] && k <= r)
- {
- sum += (min(w[i], (long long)r)-k+1)*w[i];
- // dbg("%I64d %I64d %I64d\n", k, w[i], w[i]-k+1);
- k = w[i]+1;
- ok = 1;
- }
- printf("%I64d", sum);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement