试题编号: 202012-1
试题名称: 期末预测之安全指数
时间限制: 1.0s
内存限制: 512.0MB
问题描述:
样例1输入
6
2 60
10 100
0 70
0 0
-10 50
10 60
样例1输出
1220
样例1解释
y=ReLU(1220)=1220
样例2输入
2
-10 100
-1 15
样例2输出
0
样例2解释
y=ReLU(-1015)=0
问题链接:CSP202012-1 期末预测之安全指数
问题简述:(略)
问题分析:
简单的序列处理计算问题,给出2种解题程序。
解法一:数组存储
先将数据读入数组中再进行处理。浪费数组存储,但是程序逻辑清晰,输入与计算逻辑分开,不失为一种好方法。
解法二:输入流处理
按输入流进行处理,节省存储,程序简洁。对于小问题,这也是一种好方法。
其他语言解法程序
这里也分别给出Python语言和Java语言的解题程序各一个,上述解法都可以有的。
程序说明:(略)
参考链接:(略)
题记:
追求节省存储,还是逻辑清晰,是一个值得考虑的问题。
100分的C语言程序(解法一:数组存储)如下:
/* CSP202012-1 期末预测之安全指数 */
#include <stdio.h>
#define N 100000
int n, w[N], score[N];
int main()
{
/* 读入数据 */
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d%d", &w[i], &score[i]);
/* 计算 */
int ans = 0;
for (i = 0; i < n; i++)
ans += w[i] * score[i];
/* 输出结果 */
printf("%d\n", ans > 0 ? ans : 0);
return 0;
}
100分的C语言程序(解法二:输入流处理)如下:
/* CSP202012-1 期末预测之安全指数 */
#include <stdio.h>
int main()
{
int n, ans = 0;
scanf("%d", &n);
while(n--) {
int w, score;
scanf("%d%d", &w, &score);
ans += w * score;
}
printf("%d\n", ans > 0 ? ans : 0);
return 0;
}
100分的Python语言程序(解法二:输入流处理)如下:
# CSP202012-1 期末预测之安全指数
n = int(input())
ans = 0
for i in range(n):
w, score = map(int, input().split())
ans += w * score
print(max(0, ans))
100分的Java语言程序(解法二:输入流处理)如下:
/* CSP202012-1 期末预测之安全指数 */
import java.util.Scanner;
import java.lang.Math.*;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), w, score, ans = 0;
for (int i = 1; i <= n; i++) {
w = sc.nextInt();
score = sc.nextInt();
ans += w * score;
}
System.out.print(Math.max(0, ans));
}
}