#include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; typedef long long ll; const int maxn=1e4+50; const double PI=3.1415926535897; ll n; int T; char s[20]; int len; void fill(bool flag){ char c1,c2; if (flag) { c1='4'; c2='7'; }else { c1='7'; c2='4'; } int mid=len>>1; for (int i=0;i=0;i--) { if (s[i]=='4') { flag=true; } else if (flag) { for (int j=0;j=t1 && n<=t2) flag=2; else len+=2; } if (flag==1) { fill(1); return getnum(); }else{ fill(0); ll cur,last; while((cur=getnum())>n){ last=cur; getmin(); } if (cur==n) return cur; else if (cur777777777444444444LL) puts("44444444447777777777"); else{ if (n<1) puts("47"); else printf("%I64d\n",solve()); } } return 0; }