제출 #524384

#제출 시각아이디문제언어결과실행 시간메모리
524384mateigg4Table Tennis (info1cup20_tabletennis)C++14
87 / 100
3055 ms5640 KiB
#include <bits/stdc++.h>
#define nmax 160000
#pragma GCC optimize("O3")
#define int long long

using namespace std;

int v[nmax + 1];
pair<int, int> sol[nmax + 1];
map<int, int> f;

signed main()
{
    //ifstream cin("tabletennis.in");
    //ofstream cout("tabletennis.out");
    int n, k, i, j, x, y, st, dr, s, p;
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> n >> k;
    for (i = 1; i <= n + k; i++)
        cin >> v[i];
    sort(v + 1, v + n + k + 1);
    for (x = 0; x < 2 * k; x++)
        for (y = n + k + 1; y > n - k; y--)
        {
            if (x + n + k - y <= k && f[v[x + 1] + v[y - 1]] == 0)
            {
                s = v[x + 1] + v[y - 1];
                // cout << s << endl;
                p = 0;
                st = x + 1, dr = y - 1;
                for (i = st; i <= dr; i++)
                {
                    while (dr > i && v[i] + v[dr] > s)
                        dr--;
                    if (v[i] + v[dr] == s && p < n / 2)
                    {
                        sol[p++] = {v[i], v[dr]};
                        // cout << v[i] << " " << v[dr] << endl;
                    }
                }
                if (p >= n / 2)
                {
                    for (i = 0; i < n / 2; i++)
                        cout << sol[i].first << " ";
                    for (i = n / 2 - 1; i >= 0; i--)
                        cout << sol[i].second << " ";
                    return 0;
                }
                f[s]++;
            }
            else
                break;
        }
    return 0;
}

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

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:16:18: warning: unused variable 'j' [-Wunused-variable]
   16 |     int n, k, i, j, x, y, st, dr, s, p;
      |                  ^
#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...