- 2025-10-3普及day2
111
- @ 2025-10-3 19:58:12
int ii=1;
for(int j=1;j<=n;j++)
{
if(ii+1>m)
{
ans[ii]++;
}
else if(abs(driver[ii]-user[j])<=abs(driver[ii+1]-user[j]))
{
ans[ii]++;
}
else
{
ii++;
j--;
}
}
1 条评论
-
刘牧晗 LV 6 @ 2025-10-3 20:30:30#include<bits/stdc++.h> using namespace std; int n,m,user[100005],driver[100005],q,p,ans[100005]; struct user_driver { bool yn; int where; }; user_driver x[500005]; bool cmp(user_driver x,user_driver y) { return x.where<y.where; } int main() { freopen("taxi.in","r",stdin); freopen("taxi.out","w",stdout); cin>>n>>m; for(int i=1;i<=n+m;i++) { cin>>x[i].where; } for(int i=1;i<=n+m;i++) { cin>>x[i].yn; } sort(x+1,x+1+n+m,cmp); for(int i=1;i<=n+m;i++) { if(x[i].yn==1) driver[++p]=x[i].where; else user[++q]=x[i].where; } int ii=1; for(int j=1;j<=n;j++) { if(ii+1>m) { ans[ii]++; } else if(abs(driver[ii]-user[j])<=abs(driver[ii+1]-user[j])) { ans[ii]++; } else { ii++; j--; } } for(int i=1;i<=m;i++) { cout<<ans[i]<<" "; }
return 0;}
- 1