不断匹配相乘累加就好了
#include<iostream>
#include<vector>
#include <utility>
using namespace std;int main() {int n;int a, b;long long result=0; // 使用 long long cin >> n >> a >> b;vector<pair<int, int> > u, v;int index, value;for (int i = 0; i < a; i++) {cin >> index >> value;u.push_back({ index, value });}for (int i = 0; i < b; i++) {cin >> index >> value;v.push_back({ index, value });}int i = 0, j = 0;while (i < a && j < b) {if (u[i].first == v[j].first) {result += u[i].second * v[j].second;i++; j++;}else if (u[i].first > v[j].first) {j++;}else {i++;}}cout << result << endl;return 0;
}
这里面用了pair,如果不了解的,可以看一下妾身这一篇C++中的pair
谢谢大家!