首页 > 代码库 > uva 10474 Where is the Marble?[ vector ]

uva 10474 Where is the Marble?[ vector ]

思路:sort+low_bound()二分


#include<vector>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<set>
using namespace std;



int main()
{
    vector<int>v;
    int n,m;
    int cas=1;
    while(scanf("%d%d",&n,&m),n||m)
    {
        int t;
        v.clear();
        for(int i=0;i<n;i++)
        {
            cin>>t;
            v.push_back(t);
        }
        sort(v.begin(),v.end());
        cout<<"CASE# "<<cas++<<":"<<endl;
        for(int i=0;i<m;i++)
        {
            cin>>t;
            int pos=lower_bound(v.begin(),v.end(),t)-v.begin();     //大于等于t的第一个元素
            if(v[pos]==t)
                cout<<t<<" found at "<<pos+1<<endl;
            else
                cout<<t<<" not found\n";
        }
    }
    return 0;

}


uva 10474 Where is the Marble?[ vector ]