#include <bits/stdc++.h>
#define int long long
using namespace std;
const int nmax = 2e5;
int n, m, d;
int a[nmax + 5], b[nmax + 5];
void print(int val)
{
if(val % 2 == 0)
{
cout<<val/2<<' ';
}
else
{
double p = 0.5 * val;
cout<<fixed<<setprecision(1);
cout<<p<<' ';
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
#ifdef home
freopen("nr.in","r",stdin);
freopen("nr.out","w",stdout);
#endif // home
cin>>n>>m>>d;
d *= 2;
if(m > 10)
{
for(int i=1; i<=n; i++)
{
cin>>a[i];
a[i] *= 2;
}
for(int i=1; i<=m; i++)
{
cin>>b[i];
b[i] *= 2;
b[i] += 1LL * (m - i) * d;
}
int t = 0;
int last = -d;
for(int i=1; i<=m; i++)
{
if(b[i] + t >= last)
{
last = max(last, b[i] - t);
print(t);
continue;
}
t += (last - (b[i] + t)) / 2;
last = b[i] + t;
print(t);
}
return 0;
}
vector<int> v;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
x *= 2;
v.push_back(x);
}
for(int p=1;p<=m;p++)
{
int x;
cin>>x;
x *= 2;
v.push_back(x);
sort(v.begin(), v.end());
for(int i=0;i<v.size();i++)
{
v[i] += 1LL * (v.size() - i) * d;
}
int t = 0;
int last = -d;
for(int i=0;i<v.size();i++)
{
if(v[i] + t >= last)
{
last = max(last, v[i] - t);
continue;
}
t += (last - (v[i] + t)) / 2;
last = v[i] + t;
}
print(t);
for(int i=0;i<v.size();i++)
{
v[i] -= 1LL * (v.size() - i) * d;
}
}
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... |