稀疏向量
#include <iostream> #include <map> using namespace std; typedef long long int INT; int main() { ios::sync_with_stdio(false); INT n,a,b; INT sum = 0; cin >> n >> a >> b; map <INT,INT> m; INT d1,d2; for(INT i = 0; i<a; ++i) { cin >> d1 >> d2; m.insert(pair<INT, INT>(d1,d2)); } map<INT, INT>::iterator it = m.begin(); for(INT i=0; i<b; ++i) { cin >> d1 >> d2; it = m.find(d1); if(it != m.end()) { sum += d2*it->second; } } cout << sum << endl; return 0; }
10 3 4 4 5 7 -3 10 1 1 10 4 20 5 30 7 40