제출 #717892

#제출 시각아이디문제언어결과실행 시간메모리
717892vjudge1Table Tennis (info1cup20_tabletennis)C++17
0 / 100
93 ms3740 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
#define endl '\n'
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
const int mod = 1e9 + 7;
const int N = 1e6 + 15;
const ll inf = 1e18;
int n,k;
vector<int> a;
int solve(int x){
  int p1=0,p2=n-1;
  int cur = 0;
  while (p1<p2){
    if (a[p1]+a[p2]==x){
      cur+=2;
      p1++;p2--;
    }
    else if (a[p1]+a[p2] < x){
      p1++;
    }
    else if (a[p1]+a[p2] > x){
      p2--;
    }
  }
  return cur;
}
void print(int x){
  int p1=0,p2=n-1;
  vector<int> ans;
  while (p1<p2){
    if (a[p1]+a[p2]==x){
      ans.pb(p1+1);
      ans.pb(p2+1);
      p1++;p2--;
    }
    else if (a[p1]+a[p2] < x){
      p1++;
    }
    else if (a[p1]+a[p2] > x){
      p2--;
    }
  }
  sort(all(ans));
  for (auto it :ans){
    cout << it << ' ';
  }
  return;
}
int32_t main(){
	ios_base::sync_with_stdio(0);cin.tie(0);
  cin >> n >> k;
  int o = n;
  n = n+k;
  a.resize(n);
  for (int i=0;i<n;i++){
    cin >> a[i];
  }
  k = min(k+1,n/2 + 1);
  int ans = -1;
  for (int i=0;i<k;i++){
    for (int j=0;j<k;j++){
      if (solve(a[i]+a[n-1-j])==o){
        ans = a[i]+a[n-1-j]; 
        break;
      }
    }
    if (ans!=-1) break;
  }
  print(ans);
}
#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...