Hướng dẫn giải của Tạo đội
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
do mỗi người chỉ có tên là duy nhất, nên ta có thể sử dụng cấu trúc dữ liệu map để sắp lưu tên và chỉ số sức mạnh.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
int n,m;
cin>>n>>m;
map<string,int> mp;
while (n--){
string s;
ll v;
cin>>s>>v;
mp[s]=v;
}
ll res=0;// chú ý, do có thể có tối đa 10^4 giá trị 10^9 -> 10^4*10^9 = 10^13 vượt quá int nên phải sử dụng kiểu dữ liệu long long
// int chỉ có thể biểu diễn được khoảng 2*10^9 số nguyên, nhưng long long thì có thể biểu diễn được khoảng 4*10^18 số
for(int i=0;i<m;i++)
{
string s;
cin>>s;
res+=mp[s];
}
cout<<res;
}
int main(){
solve();
}
/*
*/
Bình luận