fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5.  
  6. void solve() {
  7.  
  8. int n;
  9. cin >> n;
  10.  
  11. vector<int> a(n), b(n);
  12.  
  13. for(int i=0;i<n;i++) cin >> a[i];
  14. for(int i=0;i<n;i++) cin >> b[i];
  15.  
  16. while(a.size() > 1) {
  17.  
  18. int best = -1;
  19. int idx = 0;
  20.  
  21. // choose best adjacent pair
  22. for(int i=0;i<a.size()-1;i++) {
  23.  
  24. vector<int> v = {
  25. a[i],
  26. a[i+1],
  27. b[i],
  28. b[i+1]
  29. };
  30.  
  31. sort(v.begin(), v.end());
  32.  
  33. int cur = min(v[1], v[2]);
  34.  
  35. if(cur > best) {
  36. best = cur;
  37. idx = i;
  38. }
  39. }
  40.  
  41. vector<int> v = {
  42. a[idx],
  43. a[idx+1],
  44. b[idx],
  45. b[idx+1]
  46. };
  47.  
  48. sort(v.begin(), v.end());
  49.  
  50. a[idx] = v[1];
  51. b[idx] = v[2];
  52.  
  53. a.erase(a.begin() + idx + 1);
  54. b.erase(b.begin() + idx + 1);
  55. }
  56.  
  57. cout << min(a[0], b[0]) << endl;
  58. }
  59.  
  60. int32_t main() {
  61.  
  62. int t;
  63. cin >> t;
  64.  
  65. while(t--) {
  66. solve();
  67. }
  68. }
Success #stdin #stdout 0s 5304KB
stdin
6
1
1
2
3
2 4 5
1 3 6
4
7 5 4 8
4 6 7 8
8
8 7 13 11 1 10 4 5
11 11 12 8 9 2 3 13
9
16 1 9 12 5 18 10 10 16
14 6 7 11 12 17 18 3 17
6
3 6 12 4 10 12
2 3 2 7 8 9
stdout
1
2
6
5
9
3