답안 #791084

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
791084 2023-07-23T11:54:20 Z Andrey Table Tennis (info1cup20_tabletennis) C++14
100 / 100
176 ms 4568 KB
#include <bits/stdc++.h>
using namespace std;

int n,k;
vector<int> ans(0);
vector<int> haha(0);

bool check(int a) {
    ans.clear();
    int l = 0,r = n+k-1;
    while(l < r) {
        if(r-l+1+ans.size() < n) {
            return false;
        }
        while(r > l && haha[l]+haha[r] > a) {
            r--;
        }
        if(r <= l) {
            return false;
        }
        if(haha[r]+haha[l] == a) {
            ans.push_back(haha[l]);
            ans.push_back(haha[r]);
            if(ans.size() == n) {
                return true;
            }
        }
        l++;
    }
    return false;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> n >> k;
    int a;
    for(int i = 0; i < n+k; i++) {
        cin >> a;
        haha.push_back(a);
    }
    for(int i = 0; i < k+1; i++) {
        for(int j = n+k-1; j >= n-1 && j > i; j--) {
            if(check(haha[i]+haha[j])) {
                sort(ans.begin(),ans.end());
                for(int y = 0; y < n; y++) {
                    cout << ans[y] << " ";
                }
                cout << endl;
                return 0;
            }
        }
    }
    return 0;
}

Compilation message

tabletennis.cpp: In function 'bool check(int)':
tabletennis.cpp:12:29: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   12 |         if(r-l+1+ans.size() < n) {
      |            ~~~~~~~~~~~~~~~~~^~~
tabletennis.cpp:24:27: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   24 |             if(ans.size() == n) {
      |                ~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 724 KB Output is correct
2 Correct 25 ms 3076 KB Output is correct
3 Correct 25 ms 3020 KB Output is correct
4 Correct 25 ms 3012 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 3028 KB Output is correct
2 Correct 25 ms 3072 KB Output is correct
3 Correct 25 ms 3052 KB Output is correct
4 Correct 25 ms 3028 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 2 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 25 ms 3096 KB Output is correct
3 Correct 34 ms 3044 KB Output is correct
4 Correct 25 ms 3040 KB Output is correct
5 Correct 26 ms 3044 KB Output is correct
6 Correct 37 ms 3124 KB Output is correct
7 Correct 25 ms 3092 KB Output is correct
8 Correct 25 ms 3072 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 143 ms 3088 KB Output is correct
3 Correct 26 ms 4492 KB Output is correct
4 Correct 73 ms 4552 KB Output is correct
5 Correct 25 ms 4388 KB Output is correct
6 Correct 176 ms 4568 KB Output is correct
7 Correct 111 ms 4548 KB Output is correct
8 Correct 25 ms 4428 KB Output is correct