Submission #865921

# Submission time Handle Problem Language Result Execution time Memory
865921 2023-10-25T03:27:56 Z Darren0724 Table Tennis (info1cup20_tabletennis) C++17
100 / 100
127 ms 5992 KB
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
mt19937 rnd(time(0));
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,k;cin>>n>>k;
    vector<int> v(n+k);
    for(int i=0;i<n+k;i++){
        cin>>v[i];
    }
    int flag=0;
    unordered_set<int> s;
    auto check=[&](int p)->void {
        if(s.count(p)){
            return;
        }
        s.insert(p);
        int j=n+k-1;
        int cnt=0;
        vector<int> ans;
        int no=0;
        for(int i=0;i<n+k;i++){
            while(i<j&&v[i]+v[j]>p){
                no++;
                j--;
            }
            if(i>=j){
                break;
            }
            if(i<j&&v[i]+v[j]==p){
                ans.push_back(v[i]);
                ans.push_back(v[j]);
                cnt+=2;
                j--;
            }
            else{
                no++;
            }
            if(no>k){
                return;
            }
        }
        //cout<<ans.size()<<endl;
        if(cnt>=n){
            sort(ans.begin(),ans.begin()+n);
            for(int i=0;i<n;i++){
                cout<<ans[i]<<' ';
            }
            cout<<endl;
            flag=1;
        }
    };
    while(!flag){
        int i=rnd()%(k+1);
        int j=n-1+rnd()%(k+1);
        check(v[i]+v[j]);
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 484 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 1036 KB Output is correct
2 Correct 31 ms 4620 KB Output is correct
3 Correct 26 ms 4560 KB Output is correct
4 Correct 26 ms 4556 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 4664 KB Output is correct
2 Correct 26 ms 4560 KB Output is correct
3 Correct 26 ms 4564 KB Output is correct
4 Correct 25 ms 4560 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 600 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 5 ms 716 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 5 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 484 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 33 ms 4748 KB Output is correct
3 Correct 27 ms 4624 KB Output is correct
4 Correct 26 ms 4444 KB Output is correct
5 Correct 25 ms 4556 KB Output is correct
6 Correct 26 ms 4556 KB Output is correct
7 Correct 26 ms 4516 KB Output is correct
8 Correct 26 ms 4552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 127 ms 2724 KB Output is correct
2 Correct 68 ms 5992 KB Output is correct
3 Correct 41 ms 4864 KB Output is correct
4 Correct 29 ms 4560 KB Output is correct
5 Correct 47 ms 4524 KB Output is correct
6 Correct 28 ms 4556 KB Output is correct
7 Correct 29 ms 4548 KB Output is correct
8 Correct 26 ms 4560 KB Output is correct