fork download
  1. /*
  2.   Cred : SunnyYeahBoi
  3.   It's my last chance (⌐■_■)
  4.   Problem :
  5. */
  6.  
  7. #include<bits/stdc++.h>
  8.  
  9. using namespace std;
  10.  
  11. #define int long long
  12. #define double long double
  13. #define endl "\n"
  14. #define NAME "a"
  15.  
  16. const int MAXN = 1e6 + 5;
  17. const int inf = 1e18;
  18. const int MOD = 1e9 + 7;
  19.  
  20. void FileInput(){
  21. if(fopen(NAME".inp" , "r") == NULL)
  22. freopen(NAME".inp" , "w" , stdout);
  23. freopen(NAME".inp" , "r" , stdin);
  24. freopen(NAME".out" , "w" , stdout);
  25. }
  26.  
  27. int n , m , ta , tb , k;
  28. int a[MAXN] , b[MAXN];
  29.  
  30. int tknp(int x){
  31. int L = 1 , R = m , res = -1;
  32. // tìm j nhỏ nhất
  33. // bj >= x
  34. while(L <= R){
  35. int mid = (L + R) / 2;
  36. if(b[mid] >= x){
  37. res = mid;
  38. R = mid - 1;
  39. }else L = mid + 1;
  40. }
  41.  
  42. return res;
  43. }
  44.  
  45. void solve(){
  46. cin >> n >> m >> ta >> tb >> k;
  47. for(int i = 1 ; i <= n ; i++)
  48. cin >> a[i];
  49. for(int i = 1 ; i <= m ; i++)
  50. cin >> b[i];
  51.  
  52. if(k >= n){
  53. cout << -1 << endl;
  54. return;
  55. }
  56.  
  57. int result = 0;
  58. for(int x = 0 ; x <= k ; x++){
  59. int target = a[x + 1] + ta;
  60. int j = tknp(target);
  61.  
  62. if(j == -1){
  63. cout << -1 << endl;
  64. return;
  65. }
  66.  
  67. if(j + (k - x) > m){
  68. cout << -1 << endl;
  69. return;
  70. }
  71.  
  72. result = max(result , b[j + (k - x)] + tb);
  73. }
  74.  
  75. cout << result << endl;
  76. }
  77.  
  78. int32_t main(){
  79. //FileInput();
  80. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  81. int t = 1;
  82. // cin >> t;
  83. while(t--)
  84. solve();
  85. return 0;
  86. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
-1