分析
- 扩展数组
- 采用快慢指针的思想,只遍历一遍两个数组
AC代码
#include<iostream>//不用排序
#define N 999999//增加这个
using namespace std;
int n,a,b;
struct node {
int x;
int y;
};
node aa[N],bb[N];
int main() {
//输入
cin>>n>>a>>b;
for(int i=0; i<a; i++)
cin>>aa[i].x>>aa[i].y;
for(int i=0; i<b; i++)
cin>>bb[i].x>>bb[i].y;
long long sum=0;
for(int p=0,q=0; p<a,q<b;) {
if(aa[p].x==bb[q].x) {
sum+=aa[p].y*bb[q].y;
p++;
q++;
} else if(aa[p].x<bb[q].x) {
p++;
} else
q++;
}
cout<<sum<<endl;
}