Submission #1145408

#TimeUsernameProblemLanguageResultExecution timeMemory
1145408tntTable Tennis (info1cup20_tabletennis)C++20
100 / 100
82 ms15028 KiB
#include <bits/stdc++.h> using namespace std; //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") //#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") #define pb push_back #define ll long long #define int long long //#define sort(all(v)) sort(v.begin(),v.end()) int mod = 998244353; const int N = 1e6 + 10; int fact[200001]; ll binpow(ll a, ll b){ if(b == 0) return 1; else if(b % 2 == 1) return (a * binpow(a, b - 1)) % mod; ll p = binpow(a,b / 2); return (p * p) % mod; } signed main(){ //freopen("stacking.in", "r", stdin); //freopen("stacking.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,k; cin >> n >> k; int a[n + k + 1]; for(int i = 1; i <= n + k; i++) cin >> a[i]; map <int,int> cnt; for(int i = 1; i <= min(k + 1,n + k); i++){ for(int j = n + k; j >= n; j--){ if(i == j) continue; cnt[a[i] + a[j]]++; if(cnt[a[i] + a[j]] >= 0){ vector <pair <int,int>> ans; int l = i,r = j, ct = i - 1 + n + k - j; int sum = a[i] + a[j]; while(l < r && ct <= k){ //cout << l << " " << r << " " << sum1 << '\n'; if(sum > a[l] + a[r]){ l++; ct++; } else if(sum < a[l] + a[r]){ r--; ct++; } else{ ans.pb({a[l],a[r]}); l++; r--; } } if(ans.size() >= n / 2){ int b[n + 1]; int pos = 0; for(int h = 1; h <= n / 2; h++){ b[h] = ans[pos].first; b[n - h + 1] = ans[pos].second; pos++; } for(int h = 1; h <= n; h++) cout << b[h] << " "; return 0; } cnt[a[i] + a[j]] = -10000000; } } } }
#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...