fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll gt(int n)
  5. {
  6. ll res=1;
  7. for(int i=0;i<n;i++)
  8. {
  9. res*=2;
  10. }
  11. return res;
  12. }
  13. string sum(string a,string b)
  14. {
  15. string str="";
  16. while(a.size()<b.size()) a="0" + a;
  17. while(a.size()>b.size()) b="0" + b;
  18. int dem=0;
  19. for(int i=a.size()-1;i>=0;i--)
  20. {
  21. int x= a[i] - '0' + b[i] - '0' +dem;
  22. str+= char(x%10+48);
  23. dem=x/10;
  24. }
  25. if(dem>0) str+='1';
  26. reverse(str.begin(),str.end());
  27. return str;
  28. }
  29. main()
  30. {
  31. ll a[64];
  32. for(int i=0;i<=63;i++)
  33. {
  34. a[i]=gt(i);
  35. }
  36. int t;cin>>t;
  37. while(t--)
  38. {
  39. string str;cin>>str; reverse(str.begin(),str.end());
  40. int n=str.size();
  41. string tmp=""; string kq=""; ll res=0;
  42. for(int i=0;i<n;i++)
  43. {
  44. if(i<=50&&str[i]=='1')
  45. {
  46. res+=a[i];
  47. }
  48.  
  49. if(i>50&&str[i]=='1')
  50. {
  51. if(res>0)
  52. {
  53. kq=to_string(res);
  54. res=0;
  55. }
  56. tmp=to_string(a[i]);
  57. kq=sum(kq,tmp);
  58. }
  59. }
  60. if(res>0) kq=to_string(res);
  61. cout<<kq<<endl;
  62. }
  63. }
Success #stdin #stdout 0.01s 5420KB
stdin
Standard input is empty
stdout