以及代码求助(第一个样例没过,第二个过了)
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,q,a[300005],t[300005],cnt[300005],x,l,r,mid,sl,sr;
signed main(){
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>a[i],t[a[i]]=i;
for(int i=1;i<=n;i++) cnt[t[i]]=cnt[t[i-1]]+n-t[i]+1;//3 1 2 -- 6 2 3
// for(int i=1;i<=n;i++) cout<<cnt[t[i]]<<' ';236
while(q--){
cin>>x;
l=1,r=n;
/*for(int i=1;i<=n;i++)
if(x<=cnt[t[i]]) {sl=i;break;}*/
while(l<=r){
mid=(l+r)/2;
if(cnt[t[mid]]>x){
if(x>=cnt[t[mid-1]]){ sl=mid;break;}
r=mid-1;
}
if(cnt[t[mid]]<x) l=mid+1;
}
cout<<t[sl]<<' '<<t[sl]+x-cnt[t[sl-1]]-1<<'\n';
}return 0;
}/*
*/