Submission #1145299

#TimeUsernameProblemLanguageResultExecution timeMemory
1145299stdfloatTable Tennis (info1cup20_tabletennis)C++20
100 / 100
385 ms2376 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n, K;
	cin >> n >> K;

	int X = n + K;
	vector<int> a(X);
	for (auto &i : a)
		cin >> i;

	for (int i = 0; i <= K; i++) {
		for (int j = max(i + 1, X - K - i - 1); j < X; j++) {
			vector<bool> vis(X);
			vis[i] = vis[j] = true;

			int cnt = i + n - j - 1, sz = 2, sm = a[i] + a[j], r = j - 1;
			for (int k = i + 1; k <= r && sz != n && cnt <= K; k++) {
				while (k < r && (vis[r] || a[k] + a[r] > sm)) r--;

				if (k >= r) break;

				if (a[k] + a[r] == sm) {
					sz += 2;
					vis[k] = vis[r] = true;
					r--;
				}
				else cnt++;
			}

			if (sz == n) {
				for (int l = 0; l < X; l++)
					if (vis[l]) cout << a[l] << ' ';

				exit(false);
			}
		}
	}
}
#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...