Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. typedef vector<int> lll;
  5. typedef long long ll;
  6. const int base = 1000*1000*1000;
  7. const long long e=10, k=1;
  8. lll readlong(){lll a;string s;cin>>s;
  9. for(int i=s.size()-1;i>=0;i--)a.push_back(s[i]-'0');
  10. return a;}
  11. void writelong(lll a){
  12. for(int i=a.size()-1;i>=0;i--)cout<<a[i];}
  13. bool GTlong(lll a, lll b){
  14. if(a.size()>b.size())return true;
  15. if(a.size()<b.size())return false;
  16. for(int i=a.size()-1;i>=0;i--){
  17. if(a[i]>b[i])return true;
  18. if(a[i]<b[i])return false;}
  19. return false;}
  20. lll operator +(lll a,lll b){
  21. lll c;int i,r=0;
  22. for(i=0;i<a.size()||i<b.size();i++){
  23. if(i<a.size())r+=a[i];
  24. if(i<b.size())r+=b[i];
  25. c.push_back(r%e); r/=e;}
  26. if(r)c.push_back(r);
  27. return c;}
  28. lll operator -(lll a,lll b){
  29. lll c;int i,r=0;
  30. for(i=0;i<a.size();i++){
  31. r+=a[i];
  32. if(i<b.size())r-=b[i];
  33. if(r<0){c.push_back(r+10);r=-1;}
  34. else{c.push_back(r%10);r=0;}}
  35. while(c.size()>1&&c.back()==0)c.pop_back();
  36. return c;}
  37. lll operator *(lll a,ll b){
  38. lll c;int i;ll r=0;
  39. if(b==0){c.push_back(0);return c;}
  40. for(i=0;i<a.size();++i){
  41. r+=a[i]*b;
  42. c.push_back(r%e);r/=e;}
  43. while(r){c.push_back(r%e);r/=e;}
  44. return c;}
  45. lll operator *(lll a,lll b){
  46. lll c(1,0),d;int i,j;
  47. if(a==d||b==d)return d;
  48. if(b.size()>a.size())swap(a,b);
  49. for(i=0;i<b.size();i++){
  50. c=a*b[i];
  51. for(j=0;j<i;j++)c.insert(c.begin(),0);
  52. d=d+c;}
  53. return d;}
  54. lll operator /(lll a,ll b){
  55. lll c;int i;ll r=0,t;
  56. for(i=a.size()-1;i>=0;i--){
  57. r=r*10+a[i];t=r/b;
  58. c.insert(c.begin(),t);r-=t*b;}
  59. while(c.size()>1&&c[c.size()-1]==0)
  60. c.resize(c.size()-1);
  61. return c;}
  62. lll operator %(lll a,ll b){
  63. lll c;int i;lll r={0},t;
  64. for(i=a.size()-1;i>=0;i--){lll d={a[i]};
  65. r=r*10+d;t=r/b;r=r-t*b;}
  66. return r;}
  67. bool operator ==(lll a, lll b){
  68. if(a.size()!=b.size())return false;
  69. for(int i=0;i<a.size();i++){
  70. if(a[i]!=b[i])return false;}
  71. return true;}
  72. bool operator>(lll a, lll b){
  73. if(a.size()>b.size())return true;
  74. if(a.size()<b.size())return false;
  75. for(int i=a.size()-1;i>=0;i--){
  76. if(a[i]>b[i])return true;
  77. if(a[i]<b[i])return false;}
  78. return false;}
  79. int main(){
  80. lll a,b={0},c={4},min={1}; ll n,m,i,j,k; vector<lll>d;
  81. for(i=0;i<=100;i++)min=min*10;
  82. a=readlong();
  83. if(a==c)cout<<7;
  84. else{
  85. for(i=0;i<a.size();i++){
  86. if(a[i]==4){
  87. for(j=0;j<=9;j++){
  88. a[i]=j;
  89. if(a%7==b&&a[a.size()-1]!=0){d.push_back(a);break;}}
  90. a[i]=4;}}
  91. for(i=0;i<d.size();i++)if(min>d[i])min=d[i];
  92. writelong(min);}
  93. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement