제출 #1346693

#제출 시각아이디문제언어결과실행 시간메모리
1346693fatime_aslan_156Table Tennis (info1cup20_tabletennis)C++20
87 / 100
3095 ms8780 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+3; i++)
	{
		for(int j=n-3; j<n+k; j++)
		{
			if(i<j)
				s.insert(v[i]+v[j]);
		}
	}
	for(int x:s)
	{
		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)
		{
			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...