QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#76859 | #5505. Great Chase | rniya | AC ✓ | 1470ms | 9492kb | C++17 | 2.9kb | 2023-02-12 13:38:14 | 2023-02-12 13:38:15 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ALL(x) (x).begin(), (x).end()
#ifdef LOCAL
#include "debug.hpp"
#else
#define debug(...) void(0)
#endif
template <typename T> istream& operator>>(istream& is, vector<T>& v) {
for (T& x : v) is >> x;
return is;
}
template <typename T> ostream& operator<<(ostream& os, const vector<T>& v) {
for (size_t i = 0; i < v.size(); i++) {
os << v[i] << (i + 1 == v.size() ? "" : " ");
}
return os;
}
template <typename T> T gcd(T x, T y) { return y != 0 ? gcd(y, x % y) : x; }
template <typename T> T lcm(T x, T y) { return x / gcd(x, y) * y; }
int topbit(signed t) { return t == 0 ? -1 : 31 - __builtin_clz(t); }
int topbit(long long t) { return t == 0 ? -1 : 63 - __builtin_clzll(t); }
int botbit(signed a) { return a == 0 ? 32 : __builtin_ctz(a); }
int botbit(long long a) { return a == 0 ? 64 : __builtin_ctzll(a); }
int popcount(signed t) { return __builtin_popcount(t); }
int popcount(long long t) { return __builtin_popcountll(t); }
bool ispow2(int i) { return i && (i & -i) == i; }
long long MSK(int n) { return (1LL << n) - 1; }
template <class T> T ceil(T x, T y) {
assert(y >= 1);
return (x > 0 ? (x + y - 1) / y : x / y);
}
template <class T> T floor(T x, T y) {
assert(y >= 1);
return (x > 0 ? x / y : (x - y + 1) / y);
}
template <class T1, class T2> inline bool chmin(T1& a, T2 b) {
if (a > b) {
a = b;
return true;
}
return false;
}
template <class T1, class T2> inline bool chmax(T1& a, T2 b) {
if (a < b) {
a = b;
return true;
}
return false;
}
template <typename T> void mkuni(vector<T>& v) {
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
}
template <typename T> int lwb(const vector<T>& v, const T& x) { return lower_bound(v.begin(), v.end(), x) - v.begin(); }
const int INF = (1 << 30) - 1;
const long long IINF = (1LL << 60) - 1;
const int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
const int MOD = 998244353;
// const int MOD = 1000000007;
void solve() {
int n;
double rv;
cin >> n >> rv;
vector<double> p(n), v(n);
for (int i = 0; i < n; i++) cin >> p[i] >> v[i];
auto check = [&](double x) {
double Min = IINF, Max = -IINF;
for (int i = 0; i < n; i++) {
if (p[i] > 0)
chmin(Min, p[i] - v[i] * x);
else
chmax(Max, p[i] + v[i] * x);
}
return Min <= Max;
};
double lb = 0, ub = 1e13;
for (int _ = 0; _ < 100; _++) {
double mid = (lb + ub) / 2;
(check(mid) ? ub : lb) = mid;
}
cout << ub * rv << '\n';
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
cout << fixed << setprecision(15);
int z;
cin >> z;
for (; z--;) solve();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3672kb
input:
3 4 9 10 2 -7 2 -6 1 7 1 2 8 -1 7 1 6 2 3 -1000000000000 1 1000000000000 1
output:
38.250000000000000 1.230769230769231 3000000000000.000000000000000
result:
ok 3 numbers
Test #2:
score: 0
Accepted
time: 766ms
memory: 3668kb
input:
10000 200 997007 405524182320 754760 686939601648 419804 687047488212 715566 1446157132 4594 -670522037 4673 763634629282 253755 424307411732 275041 1582708381 8473 -667425982 4622 -522841486 1427 702430907988 460271 1405423646 1060 1497754648 6227 883363410675 723547 56899800372 46435 -810216390 64...
output:
145405766328.349121093750000 16414958969.727281570434570 5202715639.835184097290039 321977234.156325876712799 45384199210.221687316894531 183885744.769230782985687 1708925225.230472326278687 89786664971.557937622070312 13924365606.287389755249023 412975327.555555582046509 965508404.512101650238037 4...
result:
ok 10000 numbers
Test #3:
score: 0
Accepted
time: 1437ms
memory: 3844kb
input:
93 15435 968117 4196666 184 -5069875 255 -9782648 980 -1978138 176 9333323 764 -4323540 12 -8442049 319 -5371878 137 2881306 10 -4050629 133 -4659099 59 -5189169 320 -2256647 99 -3686648 37 1059255 33 -223142 20 8040933 408 8407764 705 694547 38 -7913614 746 -3573355 132 5919585 189 -3756662 94 -795...
output:
189662921.363636374473572 197971181.333333343267441 997533531.737629771232605 6439673170.665741920471191 993821598110.661010742187500 22727977326.402664184570312 34702455207.518508911132812 677770533.929817557334900 46631726883.969139099121094 5446481867.129032135009766 11336247450.272079467773438 4...
result:
ok 93 numbers
Test #4:
score: 0
Accepted
time: 1007ms
memory: 9492kb
input:
5 400000 999972 172811492468 106699 171900177092 102097 194121748377 184014 190302947556 172722 183121572232 149212 196566712700 190884 171376795991 99358 522927044000 159597 -129031052077 34395 189422320931 170012 -275879974024 638546 408864707565 98475 -106703244806 368801 192128798630 178213 2915...
output:
519985220219.811767578125000 511413015796.766479492187500 424240880533.634033203125000 518849481155.503906250000000 1882496988186.444091796875000
result:
ok 5 numbers
Test #5:
score: 0
Accepted
time: 1470ms
memory: 6724kb
input:
38 16668 999947 -3844782803 511 -210897941456 464872 618726004990 714384 -954596898686 225256 96675744 1148 -1515974078 11375 -206213840984 706184 306078847 3947 -474818331950 391451 -616022698917 561244 123378707 1540 -640636592655 406006 459201391325 908506 -733249583 5719 496163273 6238 619876911...
output:
89670748252.978607177734375 98630840901.507614135742188 29393530999.894325256347656 50801000770.955986022949219 39668001027.269332885742188 467846478226.411437988281250 30789914370.574314117431641 23151476830.905097961425781 51606123416.625831604003906 151713060001.662597656250000 100944679009.60928...
result:
ok 38 numbers