https://vjudge.net/problem/CSES-1640
用 lower_bound,但wa了5个点。。。
#include<bits/stdc++.h>
using namespace std;
int n,x;
int a[10000010];
int b[10000010];
int main()
{
cin>>n>>x;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
int o=x-a[i];
int p=lower_bound(a+1,a+n+1,o)-a;
if(p==i)
{
if(a[p+1]==a[p])
{
p++;
}
else
{
continue;
}
}
if(a[p]==o)
{
int l,r;
for(int j=1;j<=n;j++)
{
if(b[j]==a[i])
{
l=j;
}
}
for(int j=1;j<=n;j++)
{
if(b[j]==a[p])
{
r=j;
}
}
cout<<l<<" "<<r;
return 0;
}
}
cout<<"IMPOSSIBLE"<<endl;
return 0;
}