Submission #1118566

#TimeUsernameProblemLanguageResultExecution timeMemory
1118566ElayV13Table Tennis (info1cup20_tabletennis)C++17
34 / 100
3090 ms511712 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld double const int INF = 1e18; const int mod = 12345; const int sz = 1e6 + 5; int n , k; void solve() { cin >> n >> k; vector < int > a(n + k); for(int i = 0;i < n + k;i++) { cin >> a[i]; } sort(a.begin() , a.end()); vector < int > q1; vector < int > q2; for(int i = 1;i < n + k;i++) q1.push_back(a[i]); for(int i = 0;i < n + k - 1;i++) q2.push_back(a[i]); set < int > s1; for(int i = 0;i < q1.size() / 2;i++) { s1.insert(q1[i] + q1[q1.size() - i - 1]); } if(s1.size() == 1) { for(int i : q1) cout << i << ' '; return; } s1.clear(); for(int i = 0;i < q2.size() / 2;i++) { s1.insert(q2[i] + q2[q2.size() - i - 1]); } if(s1.size() == 1) { for(int i : q2) cout << i << ' '; return; } int ls = a[0] + a[n + k - 1]; map < int , int > cnt; for(int i = 0;i < n + k;i++) cnt[a[i]]++; int in = -1; for(int i = 0;i < n + k;i++) { if(!cnt[ls - a[i]]) { in = i; break; } } vector < int > l; for(int i = 0;i < n + k;i++) { if(i == in) continue; l.push_back(a[i]); } for(int i : l){ cout << i << ' '; } cout << endl; } signed main() { ios_base::sync_with_stdio(0);cin.tie(0); if(k == 1) { solve(); return 0; } cin >> n >> k; vector < int > a(n + k); map < int , int > cnt; for(int i = 0;i < n + k;i++) { cin >> a[i]; cnt[a[i]]++; } sort(a.begin() , a.end()); int ls = (n / 2); map < int , int > m; int pos = -1; for(int i = 0;i < n + k - 1;i++) { bool f = 0; for(int j = i + 1;j < n + k;j++) { if(a[j] == a[j - 1]) continue; m[a[i] + a[j]]++; if(m[a[i] + a[j]] == ls) { f = 1; pos = a[i] + a[j]; break; } } if(f) break; } vector < pair < int , int > > ans; for(int i = 0;i < n;i++) { if(ans.size() == n / 2) break; if(cnt[pos - a[i]] > 0) ans.push_back({a[i] , pos - a[i]}); } vector < int > anss; for(int i = 0;i < ans.size();i++) { anss.push_back(ans[i].first); anss.push_back(ans[i].second); } sort(anss.begin() , anss.end()); for(int i : anss) cout << i << ' '; //cout << pos << endl; }

Compilation message (stderr)

tabletennis.cpp: In function 'void solve()':
tabletennis.cpp:28:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |    for(int i = 0;i < q1.size() / 2;i++)
      |                  ~~^~~~~~~~~~~~~~~
tabletennis.cpp:38:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |    for(int i = 0;i < q2.size() / 2;i++)
      |                  ~~^~~~~~~~~~~~~~~
tabletennis.cpp: In function 'int main()':
tabletennis.cpp:110:21: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
  110 |       if(ans.size() == n / 2) break;
      |          ~~~~~~~~~~~^~~~~~~~
tabletennis.cpp:114:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  114 |    for(int i = 0;i < ans.size();i++)
      |                  ~~^~~~~~~~~~~~
#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...