time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

Vasily exited from a store and now he wants to recheck the total price of all purchases in his bill. The bill is a string in which the names of the purchases and their prices are printed in a row without any spaces. Check has the format “name1price1name2price2…namenpricen”, where namei (name of the i-th purchase) is a non-empty string of length not more than 10, consisting of lowercase English letters, and pricei (the price of the i-th purchase) is a non-empty string, consisting of digits and dots (decimal points). It is possible that purchases with equal names have different prices.

The price of each purchase is written in the following format. If the price is an integer number of dollars then cents are not written.

Otherwise, after the number of dollars a dot (decimal point) is written followed by cents in a two-digit format (if number of cents is between 1 and 9 inclusively, there is a leading zero).

Also, every three digits (from less significant to the most) in dollars are separated by dot (decimal point). No extra leading zeroes are allowed. The price always starts with a digit and ends with a digit.

For example:

“234”, “1.544”, “149.431.10”, “0.99” and “123.05” are valid prices,

“.333”, “3.33.11”, “12.00”, “.33”, “0.1234” and “1.2” are not valid.

Write a program that will find the total price of all purchases in the given bill.

Input

The only line of the input contains a non-empty string s with length not greater than 1000 — the content of the bill.

It is guaranteed that the bill meets the format described above. It is guaranteed that each price in the bill is not less than one cent and not greater than 106 dollars.

Output

Print the total price exactly in the same format as prices given in the input.

Examples

input

chipsy48.32televizor12.390

output

12.438.32

input

a1b2c3.38

output

6.38

input

aa0.01t0.03

output

0.04

【题解】



一开始的时候一直在纳闷样例1是啥。

看了挺久还剩一个半小时,就先去做T3了,A了T3之后再回过头来看(本来是想说题目错了会改,但是并没有等到);

然后才看到。如果dolar那一位有三个以上的数字需要用点号分割.

12.123指的是12123美元



12.12指的是12美元12美分

然后就累加和呗。找到每个数字串里面最后一个点号的位置(如果存在);

然后看一下那个点号后面有几个数字,如果有3个,则整个字串全是dolar位,否则有两位小数(表示美分),注意最多只有两位小数!;

最后写到输出答案的部分的时候比赛时间只剩5分钟。

我想说肯定够了。

突然发现自己不会输出double x = 0.32的小数部分;

怎么把点号去掉呢?

我想着乘10,然后取整,再减去整数,再乘10再取整!(但是竟然爆精度了,玄学);

最后比赛完的那一瞬间猛然想到直接乘100再去整数部分不就好了!

等终测完了,代码把乘100的代码交上去,A了。哎万念俱灰。如果····,可惜没有如果。

当然不能直接取整数部分,如果小于10要再补个0;

哎,TAT掉了24分。明天还要上高数辅导班,得早退了。不然不能打DIV2了。我梦寐以求的重归蓝名计划(没错我蓝过!!)离我越来越远。

都怪我一直在捣鼓T3的交互是啥玩意0 0MLGB,现在想想要是T3知道交互输入是什么就能节省很多时间了。说不定这题就A了,啊啊啊啊啊啊啊啊啊!!

#include <string>
#include <iostream>
#include <algorithm> using namespace std; string s;
double ans = 0; int main()
{
// freopen("F:\\rush.txt", "r", stdin);
cin >> s;
int len = s.size();
int now = 0;
while (now <= len - 1)//这整个while用于获取字符串里面包含的数字的和
{
int j = now + 1;
if (isdigit(s[now]))
{
double num = 0;
while (j <= len-1 && isdigit(s[j]) || s[j] == '.')
j++;
int t = j-now;
string s1 = s.substr(now, t);
int len1 = s1.size();
int pd = -1;
for (int i = len1-1;i >= 0;i--)
if (s1[i] == '.')
{
pd = i;//pd是这个数字len1里面最后一个点号的位置
break;
}
int size = len1-1 - pd;//这个点号后面的数字个数
if (pd==-1 || size > 2)//全是dolars
{
for (int i = 0; i <= len1 - 1; i++)
if (isdigit(s1[i]))
num = num * 10 + (s1[i] - '0');
ans += num;//累加答案
}
else//有美分在后面的情况
{
for (int i = 0; i <= pd - 1; i++)
if (isdigit(s1[i]))
num = num * 10 + (s1[i] - '0');
double tt = 1;
for (int i = pd + 1; i <= len1 - 1; i++)
{//小数部分
tt = tt*0.1;
num += (s1[i] - '0')*tt;
}
ans += num;//累加答案
}
}
now = j;
}
double temp = int(ans);
int dd = int(ans);
int no = 0;
string ss = "";//输出的时候美元也要3位一点号,有点麻烦所以用字符串吧
while (dd > 0)
{
int key = dd % 10;
char ke = key + '0';
ss = ke + ss;
no++;
dd = dd / 10;
if (no == 3)
{
no = 0;
if (dd >0)
ss = '.' + ss;
}
}
if (abs(ans - temp) <= 0.001)//如果没有小数部分
{
cout << ss << endl;
}
else//有小数部分
{
if (ss == "")
printf("0");
else
cout << ss;
printf(".");
double tt = ans - temp;
tt = tt * 100;//乘100···,说多了都是泪
if (tt < 10)
printf("0");
printf("%.0lf\n", tt);
}
return 0;
}

【21.67%】【codeforces 727B】Bill Total Value的更多相关文章

  1. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  2. 【24.67%】【codeforces 551C】 GukiZ hates Boxes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. 【21.37%】【codeforces 579D】"Or" Game

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【26.67%】【codeforces 596C】Wilbur and Points

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. 【21.21%】【codeforces round 382D】Taxes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 【21.58%】【codeforces 746D】Green and Black Tea

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. 【codeforces 757D】Felicity's Big Secret Revealed

    [题目链接]:http://codeforces.com/problemset/problem/757/D [题意] 给你一个01串; 让你分割这个01串; 要求2切..n+1切; 对于每一种切法 所 ...

  8. 【codeforces 757E】Bash Plays with Functions

    [题目链接]:http://codeforces.com/problemset/problem/757/E [题意] 给你q个询问; 每个询问包含r和n; 让你输出f[r][n]; 这里f[0][n] ...

  9. 【codeforces 67A】Partial Teacher

    [题目链接]:http://codeforces.com/problemset/problem/67/A [题意] 给一个长度为n-1的字符串; 每个字符串是'L','R','='这3种字符中的一个; ...

随机推荐

  1. Mybatis的使用中的一些不太注意的技巧

    以下就总结一下Mybatis的使用中的一些不太注意的技巧,算是Mybatis的总结笔 1.插入时主键返回 我们向数据库插入一条记录是,使用Mybatis的<insert>是无法返回插入的主 ...

  2. ehcache、memcache、redis三大缓存比较(转)

    最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考!  Ehcache 在Java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS ...

  3. (转)ipv4的网段表示方法

    简单一点举例说明:ip段:10.0.0.1-10.0.0.255            的表示方法:10.0.0.0/24ip段:10.0.0.1-10.0.255.255        的表示方法: ...

  4. ArcEngine数据删除几种方法和性能比较

    转自原文 ArcEngine数据删除几种方法和性能比较 一.  几种删除方法代码 1.  查询结果中删除 private void Delete1(IFeatureClass PFeatureclas ...

  5. hadoop的关键进程 分类: A1_HADOOP 2015-06-06 11:37 52人阅读 评论(0) 收藏

    hadoop集群中主要进程有 master:   NameNode, ResourceManager, slaves:   DataNode, NodeManager,  RunJar, MRAppM ...

  6. 【跟我一起学Unity3D】代码中分割图片而且载入帧序列动画

    在Cocos2dx中.对大图的处理已经封装好了一套自己的API,可是在Unity3D中貌似没有类似的API(好吧,实际上是有的,并且功能更强大),或者说我没找到. 只是这也在情理之中,毕竟Unity3 ...

  7. 什么是网站CDN服务,CDN加速原理?

    转载:http://server.zzidc.com/fwqcjwt/728.html 摘要:在为您的网站打开速度发愁吗?您有没有发现有些大网站每天拥有几十万或者上百万,甚至几亿用户的访问,而且不同用 ...

  8. 在vue中使用font-awesome

    1.安装 cnpm i font-awesome -S 2.在main.js中引入 import 'font-awesome/css/font-awesome.min.css'

  9. jsp页面无法解析EL表达式问题

    Servlet版本的问题.原来Servlet中可以设定是否解析EL表达式,只有2.4版本的Servlet默认是解析EL表达式的,而其他版本是默认不解析EL表达式.于是把web.xml中使用的2.5版本 ...

  10. 【基础练习】【线性DP】codevs3641 上帝选人题解

    这道题目的数据最后一个有问题,特殊处理了 上题目 题目描写叙述 Description 世界上的人都有智商IQ和情商EQ.我们用两个数字来表示人的智商和情商,数字大就代表其对应智商或情商高. 如今你面 ...