답안 #385729

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
385729 2021-04-04T19:48:28 Z Osama_Alkhodairy Table Tennis (info1cup20_tabletennis) C++17
100 / 100
93 ms 3564 KB
#include <bits/stdc++.h>
using namespace std;
#define finish(x) return cout << x << endl, 0
#define ll long long

int n, k;
vector <int> a;

bool check(int s){
    int l = 0, r = n - 1;
    int cnt = (n - k) / 2;
    while(l < r){
        if((r - l + 1) / 2 < cnt) return 0;
        if(a[l] + a[r] > s) r--;
        else if(a[l] + a[r] < s) l++;
        else{
            cnt--;
            l++; r--;
        }
    }
    return cnt <= 0;
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> k;
    n += k;
    a.resize(n);
    for(auto &i : a) cin >> i;
    vector <int> all;
    for(int i = 0 ; i <= k ; i++){
        for(int j = n + i - k - 1 ; j < n ; j++){
            all.push_back(a[i] + a[j]);
        }
    }
    sort(all.begin(), all.end());
    all.resize(unique(all.begin(), all.end()) - all.begin());
    int s = -1;
    for(auto &i : all){
        if(check(i)){
            s = i;
            break;
        }
    }
    assert(s > 0);
    vector <int> ans;
    int l = 0, r = n - 1;
    while(l <= r){
        if(a[l] + a[r] > s) r--;
        else if(a[l] + a[r] < s) l++;
        else{
            ans.push_back(a[l]);
            ans.push_back(a[r]);
            l++; r--;
        }
    }
    sort(ans.begin(), ans.end());
    for(auto &i : ans) cout << i << " ";
    cout << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 364 KB Output is correct
2 Correct 2 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 876 KB Output is correct
2 Correct 41 ms 3176 KB Output is correct
3 Correct 39 ms 3176 KB Output is correct
4 Correct 40 ms 3176 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 41 ms 3176 KB Output is correct
2 Correct 40 ms 3176 KB Output is correct
3 Correct 40 ms 3176 KB Output is correct
4 Correct 39 ms 3176 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 3 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 2 ms 500 KB Output is correct
5 Correct 2 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 2 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 2 ms 364 KB Output is correct
6 Correct 2 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 40 ms 3176 KB Output is correct
3 Correct 41 ms 3176 KB Output is correct
4 Correct 39 ms 3176 KB Output is correct
5 Correct 39 ms 3176 KB Output is correct
6 Correct 39 ms 3176 KB Output is correct
7 Correct 39 ms 3176 KB Output is correct
8 Correct 39 ms 3176 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1008 KB Output is correct
2 Correct 93 ms 3484 KB Output is correct
3 Correct 45 ms 3436 KB Output is correct
4 Correct 56 ms 3436 KB Output is correct
5 Correct 50 ms 3436 KB Output is correct
6 Correct 46 ms 3564 KB Output is correct
7 Correct 73 ms 3436 KB Output is correct
8 Correct 73 ms 3436 KB Output is correct