ZCMU 1679: 查找2(upper_bound()函數)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 396  Solved: 139

Description

給你一個長度是n的序列A,然後,有m次詢問,每次詢問是一個數字X,請你告訴我X在序列A中有多少個數是不大於它的

Input

第一行 ,n,m,(n,m<=100000)

第二行n個數(每個數<=1000)

第三行m個數

Output

輸出答案

Sample Input

5 4 2 5 4 3 5 2 5 8 9

Sample Output

1 5 5 5

HINT

 

Source

題解:記錄一下upper_bound()函數的用法,返回第一個比查找數字大的函數

代碼:

#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[100005];
int main()
{
    int n,m,i,ans;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i=0; i<n; i++)
            scanf("%d",&a[i]);
        sort(a,a+n);
        while(m--)
        {
            int tmp;
            scanf("%d",&tmp);
           printf("%d\n",upper_bound(a,a+n,tmp)-a);
        }
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章