题面如图所示。
本题考察对字符串,long long类型的应用。
对于每个字符如果 kk 跟正确答案一致,则获取分值,否则不获取。因此可以计算出总分数。
但是有一点要注意,n 最大为 ,而每个题的分值最大为 ,因此总分可能会出现最大为 的情况,而 int 类型最大范围为 2147483647,显然 int 存不下这么大的数,因此需要开 long long!!!
代码如下。
#include<bits/stdc++.h> // 万能头文件,不用管
using namespace std; // C++相关,不用管
int main() {
int n;
cin >> n; // cin 和 cout 为C++的输入输出方式,同等替换为C即可。
char a[10101], b[10101]; // 数组尽量开到比数据范围上线大一些。
for (int i = 0; i < n; i++) {
cin >> a[i]; // kk的答案
}
for (int i = 0; i < n; i++) {
cin >> b[i]; // 正确答案
}
long long sum = 0; // 一定要开long long 否则会爆int
for (int i = 0; i < n; i++) {
int x;
cin >> x; // 每题的分值
if (a[i] == b[i]) { // 若kk答案正确,则加上分值。
sum += x;
}
}
cout << sum;
return 0;
}