답안 #418202

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
418202 2021-06-05T08:12:30 Z dolphingarlic Table Tennis (info1cup20_tabletennis) C++14
100 / 100
109 ms 5184 KB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

int n, k;
ll a[150401];

void check(int pref, int suff) {
    vector<int> res;
    int lptr = pref + 1, rptr = suff - 1, bad = pref + n + k + 1 - suff;
    ll target = a[lptr] + a[rptr];
    while (lptr < rptr) {
        int sm = a[lptr] + a[rptr];
        if (sm == target) {
            res.push_back(lptr), res.push_back(rptr);
            lptr++, rptr--;

            if (res.size() == n) {
                sort(res.begin(), res.end());
                for (int i : res) cout << a[i] << ' ';
                exit(0);
            }
        } else if (sm < target)
            lptr++, bad++;
        else
            rptr--, bad++;
        
        if (bad > k) return;
    }
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> k;
    for (int i = 1; i <= n + k; i++) cin >> a[i];
    for (int i = 0; i <= k; i++)
        for (int j = 0; j <= k - i; j++) check(i, n + k + 1 - j);
    return 0;
}

Compilation message

tabletennis.cpp: In function 'void check(int, int)':
tabletennis.cpp:18:28: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |             if (res.size() == n) {
      |                 ~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 844 KB Output is correct
2 Correct 40 ms 3712 KB Output is correct
3 Correct 40 ms 3568 KB Output is correct
4 Correct 41 ms 3652 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 54 ms 3604 KB Output is correct
2 Correct 43 ms 3648 KB Output is correct
3 Correct 55 ms 3676 KB Output is correct
4 Correct 40 ms 3628 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 3 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 324 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 57 ms 3716 KB Output is correct
3 Correct 43 ms 3620 KB Output is correct
4 Correct 40 ms 3596 KB Output is correct
5 Correct 41 ms 3648 KB Output is correct
6 Correct 41 ms 3688 KB Output is correct
7 Correct 41 ms 3656 KB Output is correct
8 Correct 45 ms 3648 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 85 ms 3660 KB Output is correct
3 Correct 42 ms 5052 KB Output is correct
4 Correct 78 ms 5092 KB Output is correct
5 Correct 41 ms 4968 KB Output is correct
6 Correct 43 ms 5184 KB Output is correct
7 Correct 109 ms 5088 KB Output is correct
8 Correct 42 ms 5052 KB Output is correct