1. 程式人生 > 實用技巧 >CCF CSP 202012-1 期末預測之安全指數

CCF CSP 202012-1 期末預測之安全指數

202012-1 期末預測之安全指數

題目背景

期末要到了,小菜同學找到了自己的好朋友頓頓,希望可以預測一下自己這學期是否會掛科。

題目描述

首先,頓頓選取了如“課堂表現”、“自習時長”、“作業得分”、“社團活動參與度”等 n 項指標作為預測的依據。
然後,頓頓根據自己平日裡對小菜的暗中觀察,以百分制給每一項指標打分,即小菜同學第 i(1≤i≤n)項指標的得分 scorei 是一個 [0,100] 範圍內的整數。
鑑於每一項指標的重要性不盡相同,頓頓用一個 [−10,10] 範圍內的整數 wi 來表示第 i(1≤i≤n)項指標的重要程度。
最後,小菜同學期末的安全指數 y 定義如下:
$$ y = \mathrm{ReLU} \left( \sum\limits_{i=1}^{n} score_i \cdot w_i \right) $$

其中 ReLU(x)=max(0,x) 是一種常見的啟用函式。
因為使用了 ReLU 函式,安全指數一定是個非負值。
如果安全指數過低(甚至為零),則說明小菜同學這學期很可能要掛科了……
已知每一項指標的重要程度 wi 和相應的得分 scorei,快來算算小菜同學期末的安全指數吧。

輸入格式

從標準輸入讀入資料。

輸入的第一行包含一個正整數 n,保證 2≤n≤105。

接下來輸入 n 行,其中第 i(1≤i≤n)行包含用空格分隔的兩個整數 wi 和 scorei,分別表示第 i 項指標的重要程度和小菜同學該項的得分。

輸出格式

輸出到標準輸出。

輸出一個非負整數 y,表示小菜同學期末的安全指數。

樣例1輸入

6
2 60
10 100
0 70
0 0
-10 50
10 60

樣例1輸出

1220

樣例1解釋

\[y = \mathrm{ReLU} \left( 1220 \right) = 1220 \]

樣例2輸入

2
-10 100
-1 15

樣例2輸出

0

樣例2解釋

\[y = \mathrm{ReLU} \left( -1015 \right) = 0 \]

程式碼

#include<stdio.h>
int main(){
    int  n =0;
    int  w,score,sum=0;
    scanf("%d",&n);
    while(n--){
        scanf("%d %d",&w,&score);
        sum += w*score;
    }
    if (sum>0){
        printf("%d", sum);
    }else{
        printf("0");
    }
    return 0;
}