Submission #1319187

#TimeUsernameProblemLanguageResultExecution timeMemory
1319187husuuuTable Tennis (info1cup20_tabletennis)C++20
58 / 100
825 ms236988 KiB
#include <bits/stdc++.h> using namespace std; /////////////////////////////////////////////// #define int long long #define endl "\n" #define IO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define INF 0x3F3F3F3F3F3F3F3F #define ss second #define ff first #define pb push_back #define ins insert #define fori for(int i = 0 ; i < n ; i ++) /////////////////////////////////////////////// const int sz = 2e3 + 5 ; const int LG = 20 ; const int N = 1e3 ; const int mod = 1e9 + 7 ; const int MAXM = 1e5 ; /////////////////////////////////////////////// /////////////////////////////////////////////// void solve() { int n ; cin >> n ; int k ; cin >> k ; int m = n + k ; vector<int>a(m) ; map<int , int>mp ; for(int i = 0 ; i < m ; i ++) { cin >> a[i] ; mp[a[i]] ++ ; } if(k == 1) { k ++ ; } sort(a.begin() , a.end()) ; map<int , int> rep ; vector<int>Z ; for(int i = 0 ; i < min(k + 1 , m) ; i ++) { for(int j = m - 1 ; j >= min((int)0 , m - 2 * k) ; j --) { Z.push_back(a[i] + a[j]) ; } } vector<int>sums ; for(auto i : Z) rep[i] += 2; int maks = -1 ; for(auto i : rep) { if(i.ss >= maks) { if(i.ss == maks) sums.push_back(i.ff) ; else sums = {i.ff} ; maks = i.ss ; } } sort(sums.rbegin(), sums.rend()); //cout << "SUm " << sum << ' ' << rep[sum] << endl ; for(int sum : sums) { vector<int>ans ; int l = 0 ; int r = m - 1 ; while(l < r and ans.size() < n) { if(a[l] + a[r] == sum) { ans.push_back(a[l]) ; ans.push_back(a[r]) ; l ++ ; r -- ; } else if(a[l] + a[r] < sum) { l ++ ; } else { r -- ; } if(ans.size() == n) { sort(ans.begin() , ans.end()) ; for(int j = 0 ; j < n ; j ++) cout << ans[j] << ' ' ; return ; } } } } /////////////////////////////////////////////// /////////////////////////////////////////////// signed main() { IO ; int t = 1 ; // cin >> t ; while(t --) { solve() ; cout << endl ; } }
#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...