QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#822233 | #9869. Horizon Scanning | LeoG | TL | 83ms | 4304kb | C++23 | 3.6kb | 2024-12-20 02:34:48 | 2024-12-20 02:34:48 |
Judging History
answer
#include <iostream>
#include <iomanip>
#include <vector>
#include <cmath>
#include <algorithm>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <set>
#include <queue>
#include <deque>
#include <numeric>
#define ll long long
#define all(v) v.begin(),v.end()
#define ld long double
#define pll std::pair<ll,ll>
#define pi std::pair<int,int>
#define vi std::vector<int>
#define vll std::vector<ll>
#define len(x) (int)x.size()
#define vec(T) std::vector<T>
#define PI (ld)3.14159265358979323846
// overload << for pair
template <typename T>
std::ostream& operator<<(std::ostream& os, const std::pair<T, T>& pair) {
std::cout << "(" << pair.first << ", " << pair.second << ")";
return os;
}
// overload << for vec
template <typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
os << "[";
for (size_t i = 0; i < vec.size(); ++i) {
os << vec[i] << (i == vec.size() - 1 ? "\0" : ", ");
}
os << "]";
return os;
}
// overload << for map and unordered_map Output
template<typename Map>
void printMap(const Map& m) {
std::cout << '{';
for (auto it = m.begin(); it != m.end(); it++) {
std::cout << it -> first << ": " << it -> second << (std::next(it) == m.end() ? "\0" : ", ");
}
std::cout << "}";
}
template <typename K, typename V>
std::ostream& operator<<(std::ostream& os, const std::map<K, V>& m) {
printMap(m);
return os;
}
template <typename K, typename V>
std::ostream& operator<<(std::ostream& os, const std::unordered_map<K, V>& m) {
printMap(m);
return os;
}
// overload << for set and unordered_set Output
template<typename Set>
void printSet(const Set& s) {
std::cout << '{';
for (auto it = s.begin(); it != s.end(); it++) {
std::cout << *it << (std::next(it) == s.end() ? "\0" : ", ");
}
std::cout << "}";
}
template<typename T>
std::ostream& operator<<(std::ostream& os, const std::set<T>& s) {
printSet(s);
return os;
}
template<typename T>
std::ostream& operator<<(std::ostream& os, const std::unordered_set<T>& s) {
printSet(s);
return os;
}
// General print function
template <typename T>
void print(const T& val) {
std::cout << val << std::endl;
}
// Variadic template print function
template<typename T, typename... Args>
void print(const T& t, const Args&... args) {
std::cout << t << ' ';
print(args...);
if (sizeof...(args) == 1) std::cout << '\n';
}
void solve(){
int n, k;
std::cin >> n >> k;
int x, y;
vec(ld) the(n), tmp(n);
for (int i = 0; i < n; i++){
std::cin >> x >> y;
the[i] = atan2(y, x);
tmp[i] = the[i] + 2 * PI;
}
std::sort(all(the));
std::sort(all(tmp));
the.insert(the.end(), all(tmp));
ld mx = 1e9;
ll l = 0, r = 7 * mx;
auto check = [&](ll m) {
ld a = m / mx;
for (int i = 0; i < n; i++) {
int j = i;
while (the[j] - the[i] <= a) {
j++;
}
if (j - i <= k) return false;
}
return true;
};
while (l < r) {
ll m = (l + r) / 2;
if (check(m)) {
r = m;
} else {
l = m + 1;
}
}
std::cout << std::fixed << std::setprecision(9) << l / mx << '\n';
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int t = 1;
std::cin >> t;
while (t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 4228kb
input:
5 1 1 0 1 8 2 1 0 1 1 0 1 -1 1 -1 0 -1 -1 0 -1 1 -1 4 2 -1 1 0 1 0 2 1 1 4 2 -1000000000 0 -998244353 1 998244353 1 1000000000 0 3 1 0 1 0 2 0 -1
output:
6.283185308 1.570796327 5.497787144 3.141592655 3.141592654
result:
ok 5 numbers
Test #2:
score: 0
Accepted
time: 82ms
memory: 4304kb
input:
10000 16 1 -10 -6 -5 -6 -4 9 -2 5 -2 10 1 -7 1 -5 1 6 3 1 4 -9 6 -10 6 -3 6 1 8 -5 8 -4 9 -4 17 4 -9 2 -8 -4 -8 -3 -8 -1 -6 -2 -6 -1 -6 8 -5 -8 -5 10 -4 8 -2 -8 4 -9 4 0 5 -3 8 -5 9 -2 10 10 10 6 -7 2 -4 6 -2 -7 -2 -1 -1 7 1 -9 1 8 3 -4 7 -4 9 -2 14 3 -9 10 -8 -10 -8 -8 -6 -7 -6 -5 -1 -7 -1 -2 0 -1 ...
output:
1.692991498 2.574863437 4.652758268 2.772633108 5.742765807 4.857698992 3.419892313 2.812799963 6.283185308 6.283185308 5.117280767 6.146782703 3.842089024 2.342496717 3.463343208 6.283185308 5.961434753 3.324703471 5.262774929 5.672459343 1.673877936 1.114190855 2.408777552 6.283185308 5.355890090 ...
result:
ok 10000 numbers
Test #3:
score: 0
Accepted
time: 74ms
memory: 4172kb
input:
10000 19 7 -10 -6 -10 5 -3 0 -2 -5 -1 1 -1 6 0 3 0 7 1 9 3 -3 3 3 3 8 4 -1 5 8 6 -3 7 -5 7 4 8 10 9 -5 15 15 -9 -1 -8 6 -7 9 -6 -3 -4 -9 -1 -3 -1 8 1 -8 1 -7 3 -2 3 1 6 -9 7 -10 7 0 10 -9 10 3 -7 -1 -6 -2 -6 10 -5 2 -4 2 -3 -7 -2 -9 1 -3 3 4 7 7 15 4 -8 -8 -8 8 -7 0 -7 10 -6 -7 -5 6 -1 -3 -1 0 1 -2 ...
output:
3.926990817 6.283185308 3.360261600 2.677945045 3.770388941 1.762584469 3.840252479 5.497787144 2.034443936 1.815774990 4.347187531 6.141288253 5.176036590 5.465540262 5.769039152 4.366253017 5.994755749 4.892242481 4.171969481 5.677640644 5.961434753 3.506794104 4.542975937 5.300391584 4.493720035 ...
result:
ok 10000 numbers
Test #4:
score: 0
Accepted
time: 81ms
memory: 4204kb
input:
10000 18 12 -10 -4 -10 7 -8 -10 -7 -4 -6 5 -6 7 -5 0 -2 -7 -1 2 -1 10 0 2 1 1 3 -2 5 3 5 5 6 -3 8 -3 9 -2 10 1 -10 -9 -7 -7 -5 2 -4 -7 -3 1 3 1 3 3 5 -4 9 2 9 6 11 2 -8 1 -8 6 -7 -2 -6 0 -5 0 -1 -9 2 -8 3 5 6 0 10 -2 10 6 20 9 -10 -6 -10 6 -9 -8 -7 5 -6 -4 -4 -8 -2 -10 -2 -3 -2 4 -1 1 2 -5 3 -2 5 -6...
output:
4.909784541 1.975688114 1.986860833 3.926990817 3.697758884 6.283185308 6.141288253 6.193871315 5.805354253 6.252891548 5.728877811 3.090091843 1.892546882 5.634189749 2.896613991 6.283185308 2.914793806 6.147657594 1.951302704 5.564355308 5.497787144 3.098141759 4.390638426 3.909448757 2.641523911 ...
result:
ok 10000 numbers
Test #5:
score: 0
Accepted
time: 82ms
memory: 4256kb
input:
10000 19 7 -10 -1 -8 2 -7 -10 -6 6 -4 7 -3 -5 -3 1 -3 8 -2 4 -1 -7 0 -8 0 9 1 -10 2 1 2 3 3 5 6 -4 10 2 10 3 14 10 -8 2 -6 0 -5 -10 -5 10 -4 7 -3 -6 -2 -6 1 4 1 6 2 -1 3 -6 8 -4 9 -10 10 -1 12 8 -9 5 -7 2 -4 2 0 -2 0 5 1 6 3 2 4 9 5 5 7 -6 9 -9 9 2 19 12 -10 -10 -10 2 -9 -6 -8 2 -7 -5 -6 8 -4 1 -1 -...
output:
3.239319561 5.275705242 5.300391584 5.387129923 5.888394188 4.117319357 1.138388552 1.515297822 6.147657594 6.158830313 2.574863437 5.940161367 1.608514280 4.609945127 5.071159651 4.234557926 3.790588213 4.037648039 3.916002249 1.063697823 4.280988254 5.857255651 3.407844703 5.421015253 2.956244704 ...
result:
ok 10000 numbers
Test #6:
score: 0
Accepted
time: 81ms
memory: 4232kb
input:
10000 11 10 -10 -1 -9 4 -9 10 -7 -7 -5 4 -4 -1 -2 -10 0 -7 0 5 3 3 3 5 12 12 -9 6 -9 8 -3 -2 -2 2 0 -4 1 0 2 -3 3 5 5 -2 7 -1 10 3 10 9 14 12 -10 0 -9 -3 -9 1 -9 10 -8 -1 -8 7 -6 -1 -1 -6 -1 2 1 -1 3 -7 4 9 9 -3 10 1 10 4 -9 -3 -7 -1 -6 -10 -3 -2 -3 7 2 -2 2 3 5 2 6 9 9 6 10 2 -9 -9 -9 6 -8 3 -5 -9 ...
output:
6.137875297 6.283185308 6.118036630 3.200348477 2.653756215 6.253782019 3.605240263 3.559816984 1.509146157 5.927549423 6.258799899 2.622446540 4.393833304 5.497787144 4.248741372 5.497787144 4.629247749 3.546484440 6.004885649 1.196751896 2.885441272 6.200044076 1.923786715 5.662935822 5.742765807 ...
result:
ok 10000 numbers
Test #7:
score: 0
Accepted
time: 83ms
memory: 4244kb
input:
10000 14 1 -100 13 -96 -31 -82 -92 -77 -98 -50 1 -14 -57 -14 -31 -11 64 -8 75 9 68 25 100 54 -36 59 13 93 31 19 19 -76 -39 -60 95 -51 18 -39 11 -21 -46 -6 -94 -5 83 -3 -34 -3 72 0 -55 3 79 14 17 23 -88 32 37 50 70 61 -5 62 -43 84 -100 97 -50 13 7 -99 -63 -68 -87 -24 62 -20 -18 -2 -66 7 -49 13 -21 15...
output:
1.271309398 6.283185308 5.222514721 6.003065704 3.925872136 5.546528996 3.210314924 3.039930050 4.227531782 3.032019666 2.191215234 3.039008091 4.331327151 6.283185308 5.110002266 2.946314027 5.176036590 5.699183572 2.061179866 6.283185308 2.227889786 6.170774862 6.283185308 6.283185308 6.282339999 ...
result:
ok 10000 numbers
Test #8:
score: -100
Time Limit Exceeded
input:
100 1413 755 -30 -30 -30 -28 -30 -27 -30 -26 -30 -21 -30 -12 -30 -10 -30 -8 -30 -5 -30 -1 -30 2 -30 4 -30 7 -30 9 -30 17 -30 19 -30 20 -30 23 -30 24 -30 30 -29 -29 -29 -23 -29 -15 -29 0 -29 4 -29 5 -29 9 -29 10 -29 11 -29 12 -29 14 -29 16 -29 17 -29 22 -29 27 -29 28 -28 -28 -28 -25 -28 -23 -28 -22 -...