CSP第19次 202006-2 稀疏向量 C语言满分答案
字多,但是做起来还是比较简单的。
就是要注意内存限制,看了几种满分答案都是用结构体的,二维数组的话会运行错误。
输入测试数据也放在这给各位吧
10 3 4
4 5
7 -3
10 1
1 10
4 20
5 30
7 40
#include<stdio.h>
struct S
{
int index,value;
};
int main()
{
int n,a,b;
int i,j,k=0;
long long out=0;
scanf("%d %d %d",&n,&a,&b);
struct S s_a[500000],s_b[500000];
for(i=0;i<a;i++)
scanf("%d %d",&s_a[i].index,&s_a[i].value);
for(i=0;i<b;i++)
scanf("%d %d",&s_b[i].index,&s_b[i].value);
for(i=0;i<a;i++)
for(j=k;j<b;j++)
{
if(s_a[i].index==s_b[j].index)
{
out+=s_a[i].value*s_b[j].value;
k=j+1;
break;
}
if(s_a[i].index<s_b[j].index)
{
k=j;
break;
}
}
printf("%lld",out);
return 0;
}