CCF-202006-2—稀疏向量
题目:
代码:
#include <iostream>
using namespace std;
int main(){
int n,a,b;
cin>>n>>a>>b;
long long sum=0;
int u[a][2],v[b][2];
for(int i=0;i<a;i++){
cin>>u[i][0]>>u[i][1];
}
for(int i=0;i<b;i++){
cin>>v[i][0]>>v[i][1];
}
int j=0,k=0;
while((j<a)&&(k<b)){
if(u[j][0]<v[k][0]){
while((u[j][0]<v[k][0])&&(j<a))
j++;
}else if(u[j][0]>v[k][0]){
while((u[j][0]>v[k][0])&&(k<b))
k++;
}
if((u[j][0]==v[k][0])){
sum+=u[j][1]*v[k][1];
j++;
k++;
}
}
cout<<sum;
return 0;
}