#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n,m,d,x;
cin>>n>>m>>d;
multiset<int> se;
for (int i=0;i<n;i++)
cin>>x, se.insert(x);
d*=2;
while (m--)
{
cin>>x, se.insert(x);
vector<int> v,v1;
for (int i:se) v1.push_back(i*2);
int s=-1, e=d*n;
while (s+1<e)
{
int mid=(s+e)/2;
v=v1;
v[0]-=mid;
bool pos=1;
for (int i=1;i<v.size() && pos;i++)
if (v[i]-v[i-1]<d)
{
if (v[i-1]+d<=v[i]+mid) v[i]=v[i-1]+d;
else pos=0;
}
else
v[i]=max(v[i-1]+d, v[i]-mid);
if (pos)
e=mid;
else
s=mid;
}
cout<<e/2<<(e%2?".5":"")<<' ';
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |