题目描述
mx妹妹要过生日了!作为mx妹妹的好同(peng)学(you),kqp他要送给mx妹妹一样特别的礼物,譬如……项链!
项链由前n种大写字母组成,每种字母都有不同的爱心值。
Mx妹妹已经知道了:
1、组成整个项链的所有字母串;
2、整个项链的爱心值之和m,
3、以及其中的n-1种字母所带有的爱心值a;
她想知道剩下那种字母的爱心值是多少。
输入
第一行只有一个整数n;
第二行一个字母串s表示kqp的项链,长度<=1000;
第2+1~2+n-1行,每行有个大写母c和一个整数a,之前用个空格隔开,表示字母c所带的爱心值为a;
最后一行只有一个整数表示整个项链的爱心值之和m。
输出
Mx妹妹想了解剩下那个字母c带有的爱心值中多少(保留2位小数)。
样例输入 复制
8
CEAAGCGDHFB
A 5
C 35
D 18
E 42
F 15
G 17
H 21
661
样例输出 复制
451.00
数据范围限制
40%的数据,项链长度<=10,并且没有重复字母;
80%的数据,项链长度<=255,有重复字母;
100%的数据,st长度<=1000,有重复字母,n<=26。
代码:
#include<bits/stdc++.h>
using namespace std;
double x,p;
long long n,l,k,a[1000001],t;
char c,s[1001];
int main()
{
cin>>n;
cin>>s;
l=strlen(s)-1;
for(int i=1;i<n;i++)
{
cin>>c>>k;
a[c-'A']=k;
}
cin>>x;
for(int i=0;i<=l;i++)
{
if(a[s[i]-'A']>0)
x-=a[s[i]-'A'];
else
t++;
}
p=t;
cout<<fixed<<setprecision(2)<<x/p;
}