4 solutions

  • -2
    @ 2026-5-27 17:03:34
    #define int long long
    #define endl '\n'
    using namespace std;
    int n,m,r[1000000],x;
    vector<int> a,b;
    int c[100000];
    signed main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0),cout.tie(0);
    	cin>>n>>m;
    	for(int i=1;i<=n+m;i++){
    		cin>>r[i];
    	}
    	for(int i=1;i<=n+m;i++){
    		cin>>x;
    		if(x==0)b.push_back(r[i]);
    		else a.push_back(r[i]);
    	}
    	for(int i=0;i<n;i++){
    		int p=lower_bound(a.begin(),a.end(),b[i])-a.begin();
    		int h=-1;
    		int u=100000000000;
    		if(p>0){
    			int d=b[i]-a[p-1];
    			if(d<u){
    				u=d;
    				h=p-1;
    			}
    		}
    		if(p<m){
    			int d=a[p]-b[i];
    			if(d<u){
    				u=d;
    				h=p;
    			}
    		}
    		c[h]++;
    	}
    	for(int i=0;i<m;i++){
    		cout<<c[i]<<" ";
    	}
    	return 0;
    }
    
    
    

    Information

    ID
    1594
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    7
    Tags
    (None)
    # Submissions
    84
    Accepted
    20
    Uploaded By