제출 #550127

#제출 시각아이디문제언어결과실행 시간메모리
550127SlyGaleebTable Tennis (info1cup20_tabletennis)C++17
9 / 100
3132 ms836952 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ld long double
#define cff c.first.first
#define cfs c.first.second
#define cs c.second
#define cf c.first
#define csf c.second.first
#define css c.second.second
const ll N = 150005;

map<pair<int,int>,ll>mp;
map<ll,int>cnt;
map<pair<int,int>,ll>final;
set<int>alr;
multiset<ll>ans;
vector<pair<ll,pair<int,int>>>vtemp;
 
void print(vector<ll> &v) {
	for (auto c:v)
		cout << c << " ";
}

 
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
 
	int n,k;
	cin >> n >> k;
	vector<ll>v(n+k);
	for (int i = 0; i < n+k; ++i)
		cin >> v[i];
	int start = n+k-1;
	int end = n-1;
	for (int i = 0; i < n/2; ++i) {
		for (int j = start; j >= end; --j) {
			mp[{i,j}] = v[i]+v[j];
		}
		end--;
		start--;
	}
	for (auto c:mp)
		cnt[cs]++;
	for (auto c:mp) {
		if (cnt[cs]>=n/2)
			final[cf] = cs;
	}
	for (auto c:final) 
		vtemp.push_back({cs,cf});
	sort(vtemp.begin(),vtemp.end());
	for (auto c:vtemp) {
		if (!alr.count(csf) && !alr.count(css)) {
			alr.insert(csf);
			alr.insert(css);
		}
	}
	for (auto c:alr)
		ans.insert(v[c]);
	for (auto c:ans)
		cout << c << " ";
} 
#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...