题解:AT_arc201_d [ARC201D] Match, Mod, Minimize
先将加法取模转换成减法,即
也就是说,我们可以将
/*
2025.12.2
* Happy Zenith Noises *
*/
#include<bits/stdc++.h>
#define int long long
#define R register
#define fi first
#define se second
#define pb push_back
#define RG register
using namespace std;
typedef pair<int,int>P;
typedef pair<int,P>PP;
const int MAXN=1000005,inf=0x3f3f3f3f,mod=998244353;
int n,m,a[MAXN],b[MAXN],c[MAXN];
inline int gt(int x){return (x%m+m)%m;}
int check(int x){
int ans=0;
for(int i=1;i<=x;i++)c[i+n-x]=b[i]+m;
for(int i=x+1;i<=n;i++)c[i-x]=b[i];
for(int i=1;i<=n;i++){
if(a[i]>c[i])return -1;
ans=max(ans,c[i]-a[i]);
}
return ans;
}
void solve(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i],a[i]=gt(-a[i]);
for(int i=1;i<=n;i++)cin>>b[i];
sort(a+1,a+1+n);sort(b+1,b+1+n);
int l=0,r=n;
while(l<r){
int mid=(l+r)>>1;
if(check(mid)==-1)l=mid+1;
else r=mid;
}
cout<<check(l)<<'\n';
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
int T;cin>>T;
while(T--)solve();
return 0;
}