QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#873791 | #3167. ICPC Camp | LaStataleBlue# | WA | 0ms | 3712kb | C++23 | 1.8kb | 2025-01-26 23:00:58 | 2025-01-26 23:01:06 |
Judging History
answer
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#include <random>
#include <unordered_map>
#include <unordered_set>
#include <assert.h>
#include <climits>
#include <iomanip>
using namespace std;
void solve([[maybe_unused]] int t)
{
int n, p, q, s;
cin >> n >> p >> q >> s;
vector<int> a(p), b(q);
for (auto &i : a)
cin >> i;
for (auto &i : b)
cin >> i;
sort(b.rbegin(), b.rend());
auto check = [&](int d) -> bool
{
// cout << d << " check\n";
sort(a.begin(), a.end(), [&](int x, int y)
{ return min(s - x, x + d) > min(s - y, y + d); });
int cont = 0, ind = 0;
for (int i = 0; i < p; i++)
{
while (ind < q && b[ind] > min(s - a[i], a[i] + d))
ind++;
if (ind == q)
break;
if (b[ind] < a[i] - d)
continue;
// cout << i << " " << ind << "\n";
cont++;
ind++;
}
// cout << cont << " cont\n";
return cont >= n;
};
int low = -1, up = s + 1;
while (up - low > 1)
{
int mid = (up + low) / 2;
if (check(mid))
up = mid;
else
low = mid;
}
cout << (up == s + 1 ? -1 : up) << "\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n = 1;
// cin >> n;
for (int i = 1; i <= n; i++)
solve(i);
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3584kb
input:
3 4 5 10 3 4 4 9 0 1 5 6 6
output:
2
result:
ok single line: '2'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 4 4 15 1 5 10 12 1 3 10 14
output:
13
result:
ok single line: '13'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
4 4 4 10 1 12 5 10 1 10 3 14
output:
-1
result:
ok single line: '-1'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
4 4 4 30 1 5 10 12 1 3 10 14
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
4 5 5 10 1 3 3 4 9 0 2 5 7 8
output:
4
result:
ok single line: '4'
Test #6:
score: -100
Wrong Answer
time: 0ms
memory: 3712kb
input:
3 3 3 4 1 1 3 3 1 0
output:
3
result:
wrong answer 1st lines differ - expected: '2', found: '3'