この質問では、N人の生徒のスコアを読み取り、特定のスコアを取得した生徒の数を出力する必要があります。
入力フォーマット:
1行目に入力すると、1 0 5 10 ^ {5}以下になります。1 05の正の整数Nは、学生の総数です。次の行は、スペースで区切られたパーセンタイルシステムのN人の学生のスコアを示しています。最後の行は、クエリされるスコアK(Nを超えない正の整数)の数を示し、その後にスペースで区切られたKスコアが続きます。
出力フォーマット:
スコアが指定されたスコアと等しい学生の数は、クエリの順序でスペースで区切られた行に表示されますが、行の最後に余分なスペースを含めることはできません。
入力サンプル:
10
60 75 90 55 75 99 82 90 75 50
3 75 90 88
出力例:3 2 0
アイデア:
結果を配列に入れます。配列の添え字はスコアを表すため、配列は100に開かれます。定義するときは、すべて0に注意してください
。NとMを使用して、それぞれ入力数とクエリ結果数を定義します。トピックにscanfを使用します。cinを使用すると、ランタイムがタイムアウトします。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
int arr[101]={
0};
int N,M;
cin>>N;
for(int i=0;i<N;i++)
{
int temp;
scanf("%d",&temp);
arr[temp]++;
}
cin>>M;
for(int i=0;i<M;i++)
{
int s=i,k;
scanf("%d",&k);
if(s==M-1)
cout<<arr[k]<<endl;
else cout<<arr[k]<<" ";
}
}