Advertisement
jeff69

Untitled

Oct 15th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. string h;
  6. ll num,dis;
  7. ll vv[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
  8. ll f(string & q)
  9. {
  10. ll ret=0;
  11. string c;
  12. for(int i=0;i<q.size();i++)
  13. {
  14. if(q[i]=='.')
  15. {
  16. if((int)q.size()-i-1==2)break;
  17. }
  18. else c+=q[i];
  19. }
  20.  
  21. int j=0;
  22. while(!c.empty())
  23. {
  24. // cout<<c.back()<<' ';
  25. int w=c.back()-'0';
  26. ret+=((ll)w)*vv[j];
  27. c.pop_back();
  28. j++;
  29. }
  30.  
  31. return ret;
  32. }
  33. ll g( string & q )
  34. {
  35. ll ret=0;
  36. if(q.size()<3)return 0;
  37. if(q[(int)q.size()-3]=='.')
  38. {
  39. int j=0;
  40. while(!q.empty())
  41. {if(q.back()=='.')break;
  42. ret+=(ll)(q.back()-'0')*vv[j];
  43. q.pop_back();
  44. j++;
  45.  
  46. }
  47. }
  48. return ret;
  49. }
  50. int main(){
  51. cin>>h;
  52. int lc =0;
  53. for(int i=0;i<h.size();i++)
  54. {string q;
  55. if(!isalpha(h[i]))
  56. {
  57. for(;i<h.size();i++)
  58. {
  59. if(!isalpha(h[i]))
  60. {
  61. q+=h[i];
  62. }else break;
  63. }
  64.  
  65. ll aa=f(q);
  66. ll bb=g(q);
  67.  
  68.  
  69. num+=aa;
  70. dis+=bb;
  71. num+=dis/100;
  72. dis%=100;
  73. }
  74. }
  75. string ans;
  76. if(num==0)ans.push_back('0');
  77. while(num)
  78. {
  79. ll f=num%10;
  80. ans.push_back(f+'0');
  81. num/=10;
  82. }
  83. reverse(ans.begin(),ans.end());
  84. for(int i=0;i<ans.size();i++)
  85. {
  86. if(((int)ans.size()-i)%3==0&&i)cout<<'.';
  87. cout<<ans[i];
  88. }
  89. if(dis/10)
  90. cout<<'.'<<dis;
  91. if(dis!=0&&dis/10==0)cout<<".0"<<dis%10;;
  92. return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement