1 条题解

  • 0
    @ 2026-1-4 13:39:38
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=2e5+10;
    char s[N];int x[N],a[N],b[N],l,r;
    signed main()
    {
    	int n,t;scanf("%lld%lld%s",&n,&t,s+1);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%lld",&x[i]);
    		if(s[i]=='1')a[++l]=x[i];
    		else b[++r]=x[i];
    	}
    	int ans=0;
    	sort(b+1,b+r+1);
    	for(int i=1;i<=l;i++)
    	{
    		int id1=upper_bound(b+1,b+r+1,a[i]+t*2)-b-1;
    		int id2=lower_bound(b+1,b+r+1,a[i])-b;
    		ans+=id1-id2+1;
    	}
    	printf("%lld\n",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    1704
    时间
    2000ms
    内存
    1024MiB
    难度
    9
    标签
    递交数
    10
    已通过
    7
    上传者