제출 #1346697

#제출 시각아이디문제언어결과실행 시간메모리
1346697fatime_aslan_156Table Tennis (info1cup20_tabletennis)C++20
87 / 100
3093 ms4176 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k;
deque<ll>c(vector<ll>&v,ll x)
{
	deque<ll>f,q;
	ll l=0,r=v.size()-1;
	while(l<r && f.size()*2<n)
	{
		if(v[l]+v[r]==x)
		{
			f.push_back(v[l]);
			q.push_front(v[r]);
			l++;
			r--;
		}
		else if(v[l]+v[r]<x)
		{
			l++;
		}
		else
		{
			r--;
		}
	}
	if(f.size()*2<n)
	{
		return {};
	}
	while(f.size()*2>n)
	{
		f.pop_back();
		q.pop_back();
	}
	f.insert(f.end(),q.begin(),q.end());
	return f;
}
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	vector<ll>v(n+k);
	for(int i=0; i<n+k; i++)
	{
		cin>>v[i];
	}
	set<ll>s;
	for(int i=0; i<=k; i++)
	{
		for(int j=n-1; j<n+k; j++)
		{
			if(i<j)
			{
				deque<ll>f,q;
				ll l=i,r=j,e=0;
				while(l<r && f.size()*2<n)
				{
					if(v[l]+v[r]==v[i]+v[j])
					{
						f.push_back(v[l]);
						q.push_front(v[r]);
						l++;
						r--;
					}
					else if(v[l]+v[r]<v[i]+v[j])
					{
						l++;
					}
					else
					{
						r--;
					}
				}
				if(f.size()*2<n)
				{
					continue;
				}
				while(f.size()*2>n)
				{
					f.pop_back();
					q.pop_back();
				}
				for(int ji:f)
					cout<<ji<<' ';
				for(int ji:q)
					cout<<ji<<' ';
				return 0;
			}
		}
	}
	for(int x:s)
	{
		deque<ll>f,q;
		ll l=0,r=v.size()-1,e=0;
		while(l<r && f.size()*2<n)
		{
			if(v[l]+v[r]==x)
			{
				f.push_back(v[l]);
				q.push_front(v[r]);
				l++;
				r--;
			}
			else if(v[l]+v[r]<x)
			{
				l++;
			}
			else
			{
				r--;
			}
		}
		if(f.size()*2<n)
		{
			continue;
		}
		while(f.size()*2>n)
		{
			f.pop_back();
			q.pop_back();
		}
		for(int j:f)
			cout<<j<<' ';
		for(int j:q)
			cout<<j<<' ';
		return 0;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...