제출 #524831

#제출 시각아이디문제언어결과실행 시간메모리
524831boykutTable Tennis (info1cup20_tabletennis)C++14
58 / 100
3100 ms803032 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<int> a(n + k); map<int, int> cnt; for (int i = 0; i < n + k; i++) { cin >> a[i]; } if (k == 1) { sort(a.begin(), a.end()); int sum = a[0] + a[n + k - 2], ok = 1; for (int l = 0, r = n + k - 2; l < r; l++, r--) { if (a[l] + a[r] != sum) ok = 0; } if (ok) { for (int i = 0; i < n + k - 1; i++) cout << a[i] << ' '; cout << '\n'; return 0; } sum = a[1] + a[n + k - 1], ok = 1; for (int l = 1, r = n + k - 1; l < r; l++, r--) { if (a[l] + a[r] != sum) ok = 0; } if (ok) { for (int i = 1; i < n + k; i++) cout << a[i] << ' '; cout << '\n'; return 0; } sum = a[0] + a[n + k - 1]; set<int> st(a.begin(), a.end()); deque<int> ans; for (int i = 0; i < n + k; i++) { if (st.count(sum - a[i])) { ans.push_back(a[i]); ans.push_back(sum - a[i]); st.erase(sum - a[i]); st.erase(a[i]); } } sort(ans.begin(), ans.end()); assert(ans.size() >= n); while (ans.size() > n) { ans.pop_back(); ans.pop_front(); } for (int v : ans) cout << v << ' '; return 0; } for (int i = 0; i < n + k; i++) { for (int j = i + 1; j < n + k; j++) { cnt[a[i] + a[j]]++; } } int mx = -1, sum = -1; for (auto it : cnt) { if (it.second > mx) mx = it.second, sum = it.first; } assert(sum != -1); set<int> st(a.begin(), a.end()); deque<int> ans; for (int i = 0; i < n + k; i++) { if (st.count(sum - a[i])) { ans.push_back(a[i]); ans.push_back(sum - a[i]); st.erase(sum - a[i]); st.erase(a[i]); } } sort(ans.begin(), ans.end()); assert(ans.size() >= n); while (ans.size() > n) { ans.pop_back(); ans.pop_front(); } for (int v : ans) cout << v << ' '; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from tabletennis.cpp:1:
tabletennis.cpp: In function 'int main()':
tabletennis.cpp:52:21: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   52 |   assert(ans.size() >= n);
      |          ~~~~~~~~~~~^~~~
tabletennis.cpp:53:21: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   53 |   while (ans.size() > n) {
      |          ~~~~~~~~~~~^~~
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from tabletennis.cpp:1:
tabletennis.cpp:88:20: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   88 |  assert(ans.size() >= n);
      |         ~~~~~~~~~~~^~~~
tabletennis.cpp:89:20: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   89 |  while (ans.size() > n) {
      |         ~~~~~~~~~~~^~~
#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...