Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Rodica Balasa - 100
- #include <fstream>
- using namespace std;
- int main()
- {
- int i,k=1,ck,nv,j,v[10001],nk=0,gata=0,cer,pas=0,n;
- long long T=0;
- char c;
- ifstream f("poarta.in");
- ofstream g("poarta.out");
- f>>cer>>n;
- nv=0;
- while(f>>c)
- if(c>='0'&&c<='9')
- v[++nv]=c-'0';
- //for(i=1;i<=nv;i++) g<<v[i];g<<"\n";
- ck=n;
- while(ck)
- {
- nk++;ck=ck/10;
- }
- while(!gata)
- {
- j=0;k++;
- if(v[nv]%2==0)
- {
- T+=2;pas=2;
- for(i=1;i<=nv;i++)
- {
- j=j*10+v[i];
- v[i]=j/2;j=j%2;
- }
- }
- else
- {
- T++;pas=1;
- if(v[nv]>0) v[nv]--;
- }
- if(v[1]==0)
- {
- i=1;j=1;
- while(v[i]==0)i++;nv=nv-i+1;
- while(j<=nv)v[j++]=v[i++];
- }
- if(nv<=nk)
- {
- ck=0;
- for(i=1;i<=nv;i++) ck=ck*10+v[i];
- if(ck<=n)gata=1;
- }
- //for(i=1;i<=nv;i++) g<<v[i];g<<"\n";
- }
- if(pas==2&&ck*2==n+1){ck=n;T=T-1;}
- if(cer==1) g<<k<<"\n";//ne minim de dale
- else g<<T<<"\n";//nr minim de picaturi
- //g<<k<<"\n"<<ck<<"\n"<<T<<"\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement