4 solutions
-
0
Guest MOD
-
1
//发题解啦,50%见谅
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,t;}; int main(){
int n,m; cin>>n>>m; vector<node> v(n+m+5); for(int i=1;i<=n+m;i++) cin>>v[i].x; for(int i=1;i<=n+m;i++) cin>>v[i].t; vector<int> c(m+5),u(n+5); int cn1=0,cn2=0; for(int i=1;i<=n+m;i++){ if(v[i].t==1) c[++cn1]=v[i].x; else u[++cn2]=v[i].x; } vector<int> arr(m+3); for(int i=1;i<=n;i++){ int minn=1,minx=INT_MAX; for(int j=1;j<=m;j++){ if(abs(u[i]-c[j])<=minx){ if(abs(u[i]-c[j])==minx){ if(j<minn){ minx=abs(u[i]-c[j]); minn=j; } } else if(abs(u[i]-c[j])<minx){ minx=abs(u[i]-c[j]); minn=j; } } } arr[minn]++; } for(int i=1;i<=m;i++){ cout<<arr[i]<<" "; } return 0;}
Information
- ID
- 1594
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- (None)
- # Submissions
- 84
- Accepted
- 20
- Uploaded By