Submission #927014

#TimeUsernameProblemLanguageResultExecution timeMemory
927014blacktulipTable Tennis (info1cup20_tabletennis)C++17
9 / 100
3080 ms1936 KiB
#include <bits/stdc++.h>

using namespace std;

#define ort ((bas+son)/2)
#define int long long
#define endl "\n"

int n,k,a[200005],ind;
bool vis[200005],viss[200005],viss2[200005];

inline bool check(int l,int r,int sum){
	int say=0;
	while(l<r){
		//~ if(vis[l]){l++;continue;}
		//~ if(vis[r]){r--;continue;}
		if(a[l]+a[r]==sum && !viss[l] && !viss[r] && !viss2[l] && !viss2[r]){
			l++;
			r--;
			say++;
		}
		else if(a[l]+a[r]<sum){
			ind=l;
			vis[l]=1;
			l++;
		}
		else{
			ind=r;
			vis[r]=1;
			r--;
		}
	}
	if(l==r){ind=l;vis[l]=1;}
	if(say>=n/2)return 1;
	return 0;
}

int32_t main(void){
	ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
	cin>>n>>k;
	for(int i=1;i<=n+k;i++)cin>>a[i];
	for(int i=1;i<=k+1;i++){
		viss[i-1]=1;
		memset(viss2,0,sizeof(viss2));
		for(int j=n;j>=n-k;j--){
			viss2[j+1]=1;
			if(i>=j)break;
			memset(vis,0,sizeof(vis));
			if(check(1,n+k,a[i]+a[j])){
				//~ cout<<a[i]+a[j]<<endl;
				for(int ii=1;ii<=n+k;ii++){
					if(vis[ii])continue;
					cout<<a[ii]<<" ";
				}
				return 0;
			}
		}
	}
	
	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...