求助,样例2为什么过不了
查看原帖
求助,样例2为什么过不了
1380404
zby2_楼主2024/7/2 13:45
#include <bits/stdc++.h>
using namespace std;
const int N=200005;
int t,n,x[N];
char s[N];
vector<int>l,r;
int main(){
	long long ans=0;
    scanf("%d%d",&n,&t);
    scanf("%s",s+1);
    for(int i=1;i<=n;++i) scanf("%d",x+i);
    for(int i=1;i<=n;++i){
    	if(s[i]=='0') l.push_back(x[i]);
    	else r.push_back(x[i]);
	}
	sort(l.begin(),l.end());
	sort(r.begin(),r.end());
	for(auto x:l){
		int p1=lower_bound(r.begin(),r.end(),x-2*t)-r.begin();
		int p2=lower_bound(r.begin(),r.end(),x)-r.begin()-1;
		ans+=p2-p1+1;
	}
	cout<<ans<<endl;
	return 0;
}
2024/7/2 13:45
加载中...