Submission #1317681

#TimeUsernameProblemLanguageResultExecution timeMemory
1317681tuncay_pashaTable Tennis (info1cup20_tabletennis)C++20
87 / 100
3094 ms5184 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; void solve() { int n, k; if (!(cin >> n >> k)) return; int m = n + k; vector<ll> a(m); for (int i = 0; i < m; i++) cin >> a[i]; // İki işaretçi için sıralama şart sort(a.begin(), a.end()); // S adaylarını belirle: Doğru toplam S, // ilk k+1 eleman ile son k+1 elemanın eşleşmesinden gelmek zorunda. set<ll> candidates; for (int i = 0; i <= k; i++) { for (int j = m - 1 - (k - i); j < m; j++) { candidates.insert(a[i] + a[j]); } } for (ll S : candidates) { vector<ll> res; int L = 0, R = m - 1; while (L < R) { if (a[L] + a[R] == S) { res.push_back(a[L]); res.push_back(a[R]); L++; R--; } else if (a[L] + a[R] < S) { L++; } else { R--; } // n eleman bulduğumuz an durabiliriz if (res.size() == n) break; } if (res.size() == n) { sort(res.begin(), res.end()); for (int i = 0; i < n; i++) { cout << res[i] << (i == n - 1 ? "" : " "); } cout << endl; return; } } } int main() { // Hız için şart ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); 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...