1. 程式人生 > 實用技巧 >PAT 乙級1038 統計同成績學生

PAT 乙級1038 統計同成績學生

題目:

本題要求讀入 N 名學生的成績,將獲得某一給定分數的學生人數輸出。

輸入格式:

輸入在第 1 行給出不超過 105​​ 的正整數 N,即學生總人數。隨後一行給出 N 名學生的百分制整數成績,中間以空格分隔。最後一行給出要查詢的分數個數 K(不超過 N 的正整數),隨後是 K 個分數,中間以空格分隔。

輸出格式:

在一行中按查詢順序給出得分等於指定分數的學生人數,中間以空格分隔,但行末不得有多餘空格。

輸入樣例:

10
60 75 90 55 75 99 82 90 75 50
3 75 90 88

輸出樣例:

3 2 0

思路:將成績作為陣列下標輸入然後統計該分數的人數,最後遍歷輸出就行。這題最後一個測試點的資料很龐大,所以超時的朋友們可以試著加第一句程式碼,是用來提高輸入輸出速度的。

#include<iostream>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);//加這行能加快執行速度
    int grade[101] = { 0 }, N , K , score , search ;
    cin >> N;
    while (N--)
    {
        cin >> score;
        grade[score]++;
    }
    cin >> K;
    while (K--)
    {
        cin 
>> search; if (K != 0) cout << grade[search] << " "; else cout << grade[search]; } return 0; }