Submission #1346461

#TimeUsernameProblemLanguageResultExecution timeMemory
1346461bakhtiyarnTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3112 ms669532 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

int getRandom(int l, int r) {
  static mt19937_64 gen(random_device{}());
  uniform_int_distribution<int> dis(l, r);
  return dis(gen);
}

const int N = 3e5+5;
int a[N];
unordered_map<int, int> pos;

// for(int i=1; i<=n; i++) 
void solve(){
  int n, k; cin >> n >> k;
  for(int i=1; i<=n+k; i++) cin >> a[i], pos[a[i]] = i;
  sort(a+1, a+n+1);
  
  // int l = 1, r = 1e9 / ((n+1)/2);
  int l = 1, r = 1000;
  int T = 1000;
  while(T--){
    int dif = getRandom(l, r);
    // cout << dif << endl;
    vector<int> dp(n+k+1);
    for(int i=1; i<=n+k; i++){
      dp[i] = dp[i-1];
      if(a[i]-dif >= 1 and pos[a[i]-dif]) dp[i] = max(dp[i], dp[pos[a[i]-dif]-1] + 2);
    }
    if(dp[n+k] < n) continue;
    cout << dif;
    return;
  }
}

signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
#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...