沐枫NOI 13. Lucky Numbers (easy)

来源:互联网 发布:英雄传奇挂机软件 编辑:程序博客网 时间:2024/06/01 23:41

Petya loves lucky numbers. Everybody knows that positive integers are lucky if their decimal representation doesn't contain digits other than 4 and 7. For example, numbers 477444 are lucky and 517467 are not.

Lucky number is super lucky if it's decimal representation contains equal amount of digits 4 and 7. For example, numbers 477744474477 are super lucky and 4744467 are not.

One day Petya came across a positive integer n. Help him to find the least super lucky number which is not less than n.

Input

The only line contains a positive integer n (1≤n≤109). This number doesn't have leading zeroes.

Output

Output the least super lucky number that is more than or equal to n.

Please, do not use the %lld specificator to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specificator.

Examples

Input

4500

Output

4747

Input

47

Output

47

#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<set>#include<queue>#include<cstring>using namespace std;int getlen(long long n){int sum=0;while(n){n/=10;sum++;}return sum;}int main(){long long n;cin>>n;int len=getlen(n);int llen=(len+1)/2;int a[1000];for(int i=0;i<llen;i++) a[i]=4;for(int i=llen;i<2*llen;i++) a[i]=7;do{long long sum=0;for(int i=0;i<2*llen;i++) sum=sum*10+a[i];if(sum>=n){cout<<sum<<endl;return 0;}}while(next_permutation(a,a+2*llen));for(int i=0;i<=llen;i++) cout<<4;for(int i=0;i<=llen;i++) cout<<7;return 0;}