Advertisement
Guest User

Untitled

a guest
Oct 28th, 2011
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <string>
  2. #include <cstdio>
  3. #include <cassert>
  4. #include <cstring>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. #define dbg(...) fprintf(stderr, __VA_ARGS__)
  10.  
  11. int l, r, n, nw, st, fi;
  12. long long w[100005];
  13.  
  14. int len(int k)
  15. {
  16. int res = 0;
  17. while (k) ++res, k /= 10;
  18. return res;
  19. }
  20.  
  21. void gen(int i, long long num)
  22. {
  23. w[nw++] = num;
  24.  
  25. if (i == n)
  26. return ;
  27.  
  28. gen(i+1, num*10+4);
  29. gen(i+1, num*10+7);
  30. }
  31.  
  32. int main()
  33. {
  34. #ifndef ONLINE_JUDGE
  35. freopen("input.txt", "r", stdin);
  36. freopen("output.txt", "w", stdout);
  37. #endif
  38.  
  39. scanf("%d %d", &l, &r);
  40. n = len(r)+1;
  41.  
  42. nw = 2;
  43. w[0] = 4, w[1] = 7;
  44. gen(1, 4);
  45. gen(1, 7);
  46.  
  47. sort(w, w+nw);
  48. long long sum = 0, k = l;
  49. bool ok = 0;
  50.  
  51. for (int i = 0; i < nw; ++i)
  52. if (k <= w[i] && k <= r)
  53. {
  54. sum += (min(w[i], (long long)r)-k+1)*w[i];
  55. // dbg("%I64d %I64d %I64d\n", k, w[i], w[i]-k+1);
  56. k = w[i]+1;
  57. ok = 1;
  58. }
  59.  
  60. printf("%I64d", sum);
  61.  
  62. return 0;
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement