#include using namespace std; int i,j,ja,jb,xa,xb,c,e,mn,mx,n,cnt,q,a[50050],b[50050],ka[50050],kb[50050],was[50050],f[50050][1112],cur[1112]; map> w; long long r; long long fm(long long x) { return (x*(x-1))/2; } bool cmpa(int i, int j) { return a[i]0; j/=10) { if (j%10==4) c++; if (j%10==7) c--; } if (c>1111) { if (was[c]) { if (w.count(c)==0) w[c].push_back(was[c]); w[c].push_back(i); } else was[c]=i; } else { cur[c]++; if (c>mx) mx=c; } for (; ja1) r+=fm(f[i][e]); for (auto it=w.begin(); it!=w.end(); it++) { const vector& v=it->second; if (v[0]<=b[i] && v.back()>a[i]) { for (cnt=j=0; ja[i]) { if (v[j]<=b[i]) cnt++; else break; } r+=fm(cnt); } } printf("%lld\n",r); } return 0; }