求调,悬关
查看原帖
求调,悬关
769006
crzcqh楼主2024/7/6 15:32
#include<bits/stdc++.h>
#define ll long long
#define M 100005
using namespace std;
ll n,k,l,r,ans,v;
ll a[M];
ll log_(ll x){
	ll ans=0;
	while(x){
		ans++,x/=10;
	}
	return ans;
}
int main(){
	cin>>n>>k;
	for(ll i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+1+n);
	l=1,r=n;
	while(l<r){
		v=a[l]*pow(10,log_(a[l]))+a[r];
		//cout<<l<<' '<<r<<' '<<v<<endl;
		if(v<k) ans+=r-l,l++;
		if(v==k) ans+=r-l,l++,r--;
		if(v>k) r--;
	}
	l=1,r=n;
	while(l<r){
		v=a[r]*pow(10,log_(a[r]))+a[l];
		//cout<<l<<' '<<r<<' '<<v<<endl;
		if(v<k) ans+=r-l,l++;
		if(v==k) ans+=r-l,l++,r--;
		if(v>k) r--;
	}
	cout<<ans;
	return 0;
}
/*

f(Ai,Aj)<=k
-> p in[i+1,j-1] f(Ai,Ap)<=k
-> 

4 33 
    r
1 2 3 4
  l
14<33
24<33
34>33

 

*/
2024/7/6 15:32
加载中...