QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#805820#9574. StripsvictoryAC#RE 0ms0kbC++141.4kb2024-12-08 18:47:062024-12-08 18:47:07

Judging History

你现在查看的是最新测评结果

  • [2024-12-08 18:47:07]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-12-08 18:47:06]
  • 提交

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

output:


result: