蓝桥杯备考:红黑树容器map应用---英语作文
这道题我们的想法就是开个map 把知道的单词和它的高级度绑定一起,然后遍历作文,有高级词汇就加,但是,这篇作文的分隔符不一定是空格,如果我们直接cin的话会把比如说juruo!but这个字符串都进去,会丢掉这个高级词汇高级度
所以我们选择scanf一个字符一个字符读,如果读到了分割符就检查一下之前读的字符串是不是高级词汇,如果读的不是分隔符就尾插到临时的字符串上
输出最后的结果就完成了
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <map>
using namespace std;
typedef long long ll;
ll n, p;
bool check(char c)
{
if (c >= '0' && c <= '9')
return true;
else if (c >= 'a' && c <= 'z')
return true;
else if (c >= 'A' && c <= 'Z')
return true;
return false;
}
int main()
{
map <string, ll> mp;
cin >> n >> p;
while (n--)
{
string s; ll x; cin >> s >> x;
mp[s] = x;
}
char c;
string t;
ll ret = 0;
while (scanf("%c", &c) != EOF)
{
if (check(c)) t += c;
else {
ret = (ret + mp[t]) % p;
t.clear();
}
}
cout << ret << endl;
return 0;
}