思路: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; }
时间: 2024-10-10 15:40:04