제출 #1319493

#제출 시각아이디문제언어결과실행 시간메모리
1319493veyis_112Table Tennis (info1cup20_tabletennis)C++20
20 / 100
129 ms20348 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define bpc __builtin_popcount
int main() {
        ll n,k; cin>>n>>k;
        map<ll,ll>mp;
        ll a[n+k]; for(ll i=0;i<n+k;i++){ cin>>a[i]; mp[a[i]]++;}
        if(k==1){
        sort(a,a+n+k);
        ll sumbk=a[0]+a[n+k-1],sumb=a[1]+a[n+k-1], sumk=a[0]+a[n+k-2];
        ll sum=0;
        ll nk=n+k;
        bool b=0,ki=0,bk=0;
        for(ll i=0;i<n+k;i++){
          if(a[i]!=a[0] and a[i]!=a[nk-1] and mp[sumbk-a[i]]){ bk=1; break;}
          if(i!=0 and mp[sumk-a[i]]){ ki=1; break;}
          if(i!=nk-1 and mp[sumb-a[i]]){ b=1; break;}
        }
        if(bk) sum=sumbk; if(ki) sum=sumk; if(b) sum=sumb;
        
        set<ll>s;
        for(ll i=0;i<nk;i++){
          if(mp[sum-a[i]]) s.insert(a[i]);
        }
        for(ll i:s) cout<<i<<' ';
    }
    ll nk=n+k;
    if(k==2){
      sort(a,a+n+k);
        ll sumbk=a[0]+a[n+k-1],sumb=a[1]+a[n+k-1], sumk=a[0]+a[n+k-2],sumkb2=a[0]+a[nk-2],sumk2b=a[1]+a[nk-1],sumk2b2=a[1]+a[nk-2];
        ll sumk3b=a[2]+a[nk-1],sumkb3=a[0]+a[nk-3];
        ll sum=0;
        ll nk=n+k;
        bool b=0,ki=0,bk=0,kb2=0,k2b=0,k2b2=0,k3b=0,kb3=0;
        for(ll i=0;i<n+k;i++){
          if(a[i]!=a[0] and a[i]!=a[nk-1] and mp[sumbk-a[i]]){ bk=1; break;}
          if(i!=0 and mp[sumk-a[i]]){ ki=1; break;}
          if(i!=nk-1 and mp[sumb-a[i]]){ b=1; break;}
          if(i!=0 and i!=nk-2 and mp[sumkb2-a[i]]){ kb2=1; break;}
          if(i!=1 and i!=nk-1 and mp[sumk2b-a[i]]){ k2b=1; break;}
          if(i!=1 and i!=nk-2 and mp[sumk2b2-a[i]]){ k2b2=1; break;}
          if(i!=2 and i!=nk-1 and mp[sumk3b-a[i]]){ k3b=1; break;}
          if(i!=0 and i!=nk-3 and mp[sumkb3-a[i]]){ kb3=1; break;}
        }
        if(bk) sum=sumbk; if(ki) sum=sumk; if(b) sum=sumb; if(kb2) sum=sumkb2; if(k2b) sum=sumk2b; if(k2b2) sum=sumk2b2;
        if(k3b) sum=sumk3b; if(kb3) sum=sumkb3;
        set<ll>s;
        for(ll i=0;i<nk;i++){
          if(mp[sum-a[i]]) s.insert(a[i]);
        }
        for(ll i:s) cout<<i<<' ';
    }
}
#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...