Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- typedef vector<int> lll;
- typedef long long ll;
- const int base = 1000*1000*1000;
- const long long e=10, k=1;
- lll readlong(){lll a;string s;cin>>s;
- for(int i=s.size()-1;i>=0;i--)a.push_back(s[i]-'0');
- return a;}
- void writelong(lll a){
- for(int i=a.size()-1;i>=0;i--)cout<<a[i];}
- bool GTlong(lll a, lll b){
- if(a.size()>b.size())return true;
- if(a.size()<b.size())return false;
- for(int i=a.size()-1;i>=0;i--){
- if(a[i]>b[i])return true;
- if(a[i]<b[i])return false;}
- return false;}
- lll operator +(lll a,lll b){
- lll c;int i,r=0;
- for(i=0;i<a.size()||i<b.size();i++){
- if(i<a.size())r+=a[i];
- if(i<b.size())r+=b[i];
- c.push_back(r%e); r/=e;}
- if(r)c.push_back(r);
- return c;}
- lll operator -(lll a,lll b){
- lll c;int i,r=0;
- for(i=0;i<a.size();i++){
- r+=a[i];
- if(i<b.size())r-=b[i];
- if(r<0){c.push_back(r+10);r=-1;}
- else{c.push_back(r%10);r=0;}}
- while(c.size()>1&&c.back()==0)c.pop_back();
- return c;}
- lll operator *(lll a,ll b){
- lll c;int i;ll r=0;
- if(b==0){c.push_back(0);return c;}
- for(i=0;i<a.size();++i){
- r+=a[i]*b;
- c.push_back(r%e);r/=e;}
- while(r){c.push_back(r%e);r/=e;}
- return c;}
- lll operator *(lll a,lll b){
- lll c(1,0),d;int i,j;
- if(a==d||b==d)return d;
- if(b.size()>a.size())swap(a,b);
- for(i=0;i<b.size();i++){
- c=a*b[i];
- for(j=0;j<i;j++)c.insert(c.begin(),0);
- d=d+c;}
- return d;}
- lll operator /(lll a,ll b){
- lll c;int i;ll r=0,t;
- for(i=a.size()-1;i>=0;i--){
- r=r*10+a[i];t=r/b;
- c.insert(c.begin(),t);r-=t*b;}
- while(c.size()>1&&c[c.size()-1]==0)
- c.resize(c.size()-1);
- return c;}
- lll operator %(lll a,ll b){
- lll c;int i;lll r={0},t;
- for(i=a.size()-1;i>=0;i--){lll d={a[i]};
- r=r*10+d;t=r/b;r=r-t*b;}
- return r;}
- bool operator ==(lll a, lll b){
- if(a.size()!=b.size())return false;
- for(int i=0;i<a.size();i++){
- if(a[i]!=b[i])return false;}
- return true;}
- bool operator>(lll a, lll b){
- if(a.size()>b.size())return true;
- if(a.size()<b.size())return false;
- for(int i=a.size()-1;i>=0;i--){
- if(a[i]>b[i])return true;
- if(a[i]<b[i])return false;}
- return false;}
- int main(){
- lll a,b={0},c={4},min={1}; ll n,m,i,j,k; vector<lll>d;
- for(i=0;i<=100;i++)min=min*10;
- a=readlong();
- if(a==c)cout<<7;
- else{
- for(i=0;i<a.size();i++){
- if(a[i]==4){
- for(j=0;j<=9;j++){
- a[i]=j;
- if(a%7==b&&a[a.size()-1]!=0){d.push_back(a);break;}}
- a[i]=4;}}
- for(i=0;i<d.size();i++)if(min>d[i])min=d[i];
- writelong(min);}
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement