写起来就很舒服 看起来就更舒服
#include<bits/stdc++.h> using namespace std; #define N 100005 int main(){ int m, n, a[N], b[N], key, s = 0; cin >> m >> n; for(int i=1; i<=m; i++) cin >> a[i]; sort(a+1, a+m+1); while(n--){ cin >> key; int l=0, r=m, mid = l + ((r-l)>>1), flag = 1; while(l <= r && flag){ mid = l + ((r-l)>>1); if(a[mid] > key) r = mid - 1; else if(a[mid] < key) l = mid + 1; else flag = 0; } if(flag){ if(r >= 1 && l >= 1){ if(abs(a[l] - key) < abs(a[r] - key)) s += abs(a[l] - key); else s += abs(a[r] - key); }else if(a[l] >= 1) s += abs(a[l] - key); else s += abs(a[r] - key); } } cout << s; return 0; }