QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#411235 | #6749. Target | KunoSayo | AC ✓ | 1ms | 3880kb | C++23 | 2.9kb | 2024-05-15 10:22:54 | 2024-05-15 10:22:55 |
Judging History
answer
#pragma clang diagnostic push
#pragma ide diagnostic ignored "OCUnusedTypeAliasInspection"
#pragma ide diagnostic ignored "OCUnusedGlobalDeclarationInspection"
typedef unsigned long long ull;
typedef long long ll;
#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <algorithm>
#include <numeric>
#include <set>
#include <map>
using namespace std;
template<typename T, typename U>
T check_read(T left, U right) {
T val;
if (cin >> val) {
if (val < left || val > right) {
throw "??";
}
return val;
}
throw "?";
}
const int MAXN = 1e5 + 9;
ull mod = 998244353;
ull fpow(ull x, ull n) {
ull ret = 1;
while (n) {
if (n & 1) ret = ret * x % mod;
n >>= 1;
x = x * x % mod;
}
return ret;
}
int b[10];
map<vector<char>, ull> dp;
int n;
ull divcache[12];
ull dfs(vector<char> &cur) {
// E(..) = 1 + (1/n) E(..-1, ..) +
// + (nz / n) E(..)
// (n-nz/n) E(..) = 1 + ..
// E(..) = n / (n - nz) (before)
auto it = dp.find(cur);
if (it != dp.end()) {
return it->second;
}
ull ret = 1;
ull nz = 0;
for (int i = 0; i < n; ++i) {
if (cur[i] > 0) {
--cur[i];
ull result = dfs(cur);
ret += result * divcache[n];
ret %= mod;
++cur[i];
} else if (cur[i] == 0) {
++nz;
}
}
if (nz) {
ret *= n;
ret %= mod;
ret *= divcache[n - nz];
ret %= mod;
}
dp[cur] = ret;
return ret;
}
void solve() {
double u;
double d = 0.975;
cin >> u >> d;
ull data = *(ull *) &d;
int exp = 0;
for (int i = 62; i >= 52; --i) {
exp = (exp << 1) | ((data >> i) & 1);
}
exp -= 1023;
// int after_ans = 1 - exp;
// int ops = 0;
// // 2 - 51
// // 1 - 50
// // 0 - 49
// for (int i = 0, j = after_ans + 2; i < 50 - after_ans; ++i, ++j) {
// cout << (1 + ((data >> j) & 1));
// if (++ops >= 50) throw "impossible.";
// }
// cout << 2;
// for (int i = exp; i < 0; ++i) {
// cout << 1;
// if (++ops >= 50) throw "?";
// }
// debug
vector<int> ans;
double cur = 1.0;
for (int i = 0; i < 50; ++i) {
if (cur > d) {
ans.push_back(1);
} else {
d -= cur;
// d >= cur
ans.push_back(2);
}
cur /= 2.0;
}
std::reverse(ans.begin(), ans.end());
// cout << endl;
for (int i = 0; i < 49; ++i) {
cout << ans[i];
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cout << fixed;
cout.precision(18);
int T = 1;
while (T--) {
solve();
}
return 0;
}
#pragma clang diagnostic pop
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3672kb
input:
0.5 0.25
output:
1111111111111111111111111111111111111111111111121
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
1 0.75
output:
1111111111111111111111111111111111111111111111122
result:
ok ok
Test #3:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
1 0
output:
1111111111111111111111111111111111111111111111111
result:
ok ok
Test #4:
score: 0
Accepted
time: 1ms
memory: 3692kb
input:
0.361954 0.578805
output:
1221112221211112221111112111121121122121111212112
result:
ok ok
Test #5:
score: 0
Accepted
time: 1ms
memory: 3696kb
input:
0.144888 0.140086
output:
2111112121111121211212111212212121122212222111211
result:
ok ok
Test #6:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
0.514397 0.969399
output:
1212212211221112221121221111211121212121111122222
result:
ok ok
Test #7:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
0.887873 0.402213
output:
1221212121221111121111221122212212221222212211221
result:
ok ok
Test #8:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
0.152004 0.176414
output:
2211222211222111211121122222122212112121121221211
result:
ok ok
Test #9:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
0.401831 0.860762
output:
2211222122211121222222222212112221212212111222122
result:
ok ok
Test #10:
score: 0
Accepted
time: 1ms
memory: 3704kb
input:
0.580629 0.869474
output:
2111212221112221212122111211221222121211212222122
result:
ok ok
Test #11:
score: 0
Accepted
time: 1ms
memory: 3668kb
input:
0.138673 0.508844
output:
1212211111121112212112212211221122211112112111112
result:
ok ok
Test #12:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
0.027182 0.263243
output:
1221112121221122222121212112112222211122122111121
result:
ok ok
Test #13:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
0.081714 0.212216
output:
2112221111111221222121212211211222211212112212211
result:
ok ok
Test #14:
score: 0
Accepted
time: 0ms
memory: 3876kb
input:
0.562775 0.388603
output:
1221112121111121111122221112222212212222122111221
result:
ok ok
Test #15:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
0.112949 0.147503
output:
2222121222222111121112212211111221211112221211211
result:
ok ok
Test #16:
score: 0
Accepted
time: 1ms
memory: 3700kb
input:
0.800247 0.150903
output:
1111211211222212221122211112121122111121212211211
result:
ok ok
Test #17:
score: 0
Accepted
time: 0ms
memory: 3876kb
input:
0.300103 0.584619
output:
1222111221222211221222211222121122112121221212112
result:
ok ok
Test #18:
score: 0
Accepted
time: 0ms
memory: 3664kb
input:
0.844720 0.070148
output:
1221222112111122221211211111222112121222221112111
result:
ok ok
Test #19:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
0.573320 0.123035
output:
2221212212211112121211122111222112222222122222111
result:
ok ok
Test #20:
score: 0
Accepted
time: 0ms
memory: 3700kb
input:
0.467281 0.231366
output:
2212111111112122122122121212211221212221122122211
result:
ok ok
Test #21:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
0.264769 0.373434
output:
1222112221221221121111222122221212112211222222121
result:
ok ok
Test #22:
score: 0
Accepted
time: 0ms
memory: 3880kb
input:
0.689729 0.570712
output:
2221211212222122122222221122212111212211112112112
result:
ok ok
Test #23:
score: 0
Accepted
time: 0ms
memory: 3852kb
input:
0.747218 0.312573
output:
2221121221122211211222212111211221121111111112121
result:
ok ok
Test #24:
score: 0
Accepted
time: 0ms
memory: 3724kb
input:
0.215052 0.203677
output:
1111211121211222221211111212212111121121111212211
result:
ok ok
Test #25:
score: 0
Accepted
time: 0ms
memory: 3720kb
input:
0.607834 0.733102
output:
1222121222111121212122112121121121122121222122212
result:
ok ok
Test #26:
score: 0
Accepted
time: 0ms
memory: 3660kb
input:
0.516860 0.252876
output:
2221222212111222221211121221222211122221211111121
result:
ok ok
Test #27:
score: 0
Accepted
time: 0ms
memory: 3876kb
input:
0.955285 0.457773
output:
1222112222122222222222221112221121111221121212221
result:
ok ok
Test #28:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
0.156178 0.353262
output:
2222112212212122211111222111112212222122112122121
result:
ok ok
Test #29:
score: 0
Accepted
time: 0ms
memory: 3660kb
input:
0.398701 0.040258
output:
2211111112221122121121211211221211222112112121111
result:
ok ok
Test #30:
score: 0
Accepted
time: 0ms
memory: 3880kb
input:
0.973859 0.000184
output:
2121111122212222221111111222211111122111111111111
result:
ok ok
Test #31:
score: 0
Accepted
time: 1ms
memory: 3880kb
input:
0.882213 0.556709
output:
2112211122211122111211211221222211121111212221112
result:
ok ok
Test #32:
score: 0
Accepted
time: 1ms
memory: 3668kb
input:
0.263822 0.460984
output:
1211122121212222222111211112211112211111112212221
result:
ok ok
Test #33:
score: 0
Accepted
time: 0ms
memory: 3672kb
input:
0.443432 0.034841
output:
2222121212222111222122222122121212212122211121111
result:
ok ok