稀疏矩阵的一维版本 比第一题好写
#include<algorithm>
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<string.h>
#include<vector>
#define MAXN 1010
using namespace std;
int n,a,b;
long long ans;
struct node
{
int idx,val;
};
int main()
{
cin>>n>>a>>b;
vector <node> vec1,vec2;
for(int i=1;i<=a;i++)
{
node x;
cin>>x.idx>>x.val;
vec1.push_back(x);
}
for(int i=1;i<=b;i++)
{
node x;
cin>>x.idx>>x.val;
vec2.push_back(x);
}
int i=0,j=0;
while(i < a && j < b)
{
if(vec1[i].idx != vec2[j].idx)
{
if(vec1[i].idx < vec2[j].idx) i++;
else j++;
continue;
}
ans += vec1[i].val * vec2[j].val;
i++;j++;
}
cout<<ans<<endl;
system("pause");
return 0;
}