QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#805820 | #9574. Strips | victoryAC# | RE | 0ms | 0kb | C++14 | 1.4kb | 2024-12-08 18:47:06 | 2024-12-08 18:47:07 |
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> PII;
#define endl '\n'
const int N=1e6+10;
const int mod=1e9+7;
const double eps=1e-9;
ll a[N],b[N];
void solve()
{
ll n,m,k,w;
cin>>n>>m>>k>>w;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=m;i++) cin>>b[i];
sort(b+1,b+1+m);
sort(a+1,a+1+n);
b[0]=0,b[m+1]=w+1;
ll ans=0;
ll id=1;
vector<ll> c;
for(int i=1;i<=m+1;i++)
{
vector<ll> v;
ll x=0;
ll s=b[i-1],e=b[i];
if(e-s<=1||a[id]>e) continue;
else
{
while(a[id]<e)
{
if(!v.size())
{
v.push_back(a[id]);
x=a[id];
}
else
{
if(a[id]>x+k-1)
{
v.push_back(a[id]);
x=a[id];
}
}
id++;
}
}
ll sum=v.size();
if(v[v.size()-1]+k-1>=e)
{
v[v.size()-1]-=v[sum-1]+k-e;
for(int j=sum-2;j>=0;j--)
{
if(v[j]+k-1>=v[j+1]) v[j]-=v[j]+k-v[j+1];
}
if(v[0]<=s)
{
cout<<-1<<endl;
return;
}
ans+=sum;
for(int j=0;j<sum;j++)
{
c.push_back(v[j]);
}
}
else
{
ans+=sum;
for(auto j:v)
{
c.push_back(j);
}
}
}
cout<<ans<<endl;
for(auto i:c) cout<<i<<' ';
cout<<endl;
return;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int _=1;
cin>>_;
while(_--)
{
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
4 5 2 3 16 7 11 2 9 14 13 5 3 2 4 11 6 10 2 1 11 2 1 2 6 1 5 3 2 1 2 6 1 5 2