Submission #389590
Source Code Expand
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <queue>
#include <cmath>
using namespace std;
typedef long long Int;
int in() { int x; scanf("%d", &x); return x; }
template<typename T> void chmin(T& f, T t) { if (f > t) f = t; }
int P, M, N;
void vprint(vector<int> v) {
printf("%d\n", v.size());
for (int i = 0; i < v.size(); ++i) {
printf("%d%c", v[i], i + 1 == v.size() ? '\n' : ' ');
}
}
void print_to(int n) {
if (n <= 200) {
printf("%d\n", n);
for (int i = 1; i <= n; ++i) {
printf("%d%c", i, i == n ? '\n' : ' ');
}
} else {
printf("%d\n", n);
for (int i = 1; i <= 100; ++i) {
printf("%d ", i);
}
for (int i = n - 99; i <= n; ++i) {
printf("%d%c", i, i == n ? '\n' : ' ');
}
}
}
double p;
double dfs(int cur, int depth) {
if (depth >= 100000) {
return 0.0;
}
if (cur == 0) return 0.0;
if (cur == N) return 1.0;
int w = min(cur, N - cur);
return (1 - p) * dfs(cur - w, depth + 1) + p * dfs(cur + w, depth + 1);
}
vector<int> ans;
void getans(int m, int n) {
if (m == 0 || m == n) {
return;
}
ans.push_back(min(m, n - m));
if (n % 2 == 0) {
getans(m % (n / 2), n / 2);
}
}
int main() {
P = in();
M = in();
N = in();
p = P / 100.0;
if (P == 0) {
puts("0");
print_to(M);
} else if (P == 50) {
printf("%.9f\n", (double)M / N);
print_to(min(M, N - M));
} else if (P == 100) {
puts("1");
print_to(M);
} else if (P > 50) {
double q = (1 - p) / p;
printf("%.9f\n", (1 - pow(q, M)) / (1 - pow(q, N)));
puts("1\n1");
} else {
double s = dfs(M, 0);
printf("%.9f\n", s);
getans(M, N);
sort(ans.begin(), ans.end());
ans.erase(unique(ans.begin(), ans.end()), ans.end());
vprint(ans);
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Casino |
| User | Operasan |
| Language | C++11 (GCC 4.9.2) |
| Score | 100 |
| Code Size | 1825 Byte |
| Status | AC |
| Exec Time | 37 ms |
| Memory | 5660 KiB |
Compile Error
./Main.cpp: In function ‘void vprint(std::vector<int>)’:
./Main.cpp:18:25: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘std::vector<int>::size_type {aka long unsigned int}’ [-Wformat=]
printf("%d\n", v.size());
^
./Main.cpp: In function ‘int in()’:
./Main.cpp:12:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
int in() { int x; scanf("%d", &x); return x; }
^
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 00_sample_00, 00_sample_01, 10_p0_large_00, 10_p0_large_01, 10_p0_large_02, 10_p0_large_03, 10_p0_large_04, 10_p0_large_05, 10_p0_large_06, 10_p0_small_00, 10_p0_small_01, 10_p0_small_02, 20_bad_large_00, 20_bad_large_01, 20_bad_large_02, 20_bad_large_03, 20_bad_large_04, 20_bad_large_05, 20_bad_large_06, 20_bad_large_07, 20_bad_large_08, 20_bad_large_09, 20_bad_large_10, 20_bad_large_11, 20_bad_large_12, 20_bad_large_13, 20_bad_large_14, 20_bad_large_15, 20_bad_large_16, 20_bad_large_17, 20_bad_large_18, 20_bad_large_19, 20_bad_large_20, 20_bad_large_21, 20_bad_large_22, 20_bad_large_23, 20_bad_large_24, 20_bad_large_25, 20_bad_large_26, 20_bad_large_27, 20_bad_large_28, 20_bad_large_29, 20_bad_long2_00, 20_bad_long2_01, 20_bad_long2_02, 20_bad_long2_03, 20_bad_long_00, 20_bad_long_01, 20_bad_long_02, 20_bad_long_03, 20_bad_max_00, 20_bad_max_01, 20_bad_max_02, 20_bad_max_03, 20_bad_medium_00, 20_bad_medium_01, 20_bad_medium_02, 20_bad_medium_03, 20_bad_medium_04, 20_bad_medium_05, 20_bad_medium_06, 20_bad_medium_07, 20_bad_medium_08, 20_bad_medium_09, 20_bad_medium_10, 20_bad_most_00, 20_bad_small_00, 20_bad_small_01, 20_bad_small_02, 30_p50_large_00, 30_p50_large_01, 30_p50_large_02, 30_p50_large_03, 30_p50_large_04, 30_p50_large_05, 30_p50_large_06, 30_p50_small_00, 30_p50_small_01, 30_p50_small_02, 40_good_large_00, 40_good_large_01, 40_good_large_02, 40_good_large_03, 40_good_large_04, 40_good_large_05, 40_good_large_06, 40_good_large_07, 40_good_large_08, 40_good_large_09, 40_good_large_10, 40_good_large_11, 40_good_max_00, 40_good_max_01, 40_good_max_02, 40_good_max_03, 40_good_medium_00, 40_good_medium_01, 40_good_medium_02, 40_good_medium_03, 40_good_medium_04, 40_good_small_00, 40_good_small_01, 40_good_small_02, 50_p100_large_00, 50_p100_large_01, 50_p100_large_02, 50_p100_large_03, 50_p100_large_04, 50_p100_large_05, 50_p100_large_06, 50_p100_small_00, 50_p100_small_01, 50_p100_small_02 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00 | AC | 26 ms | 1052 KiB |
| 00_sample_01 | AC | 25 ms | 924 KiB |
| 10_p0_large_00 | AC | 24 ms | 924 KiB |
| 10_p0_large_01 | AC | 23 ms | 924 KiB |
| 10_p0_large_02 | AC | 25 ms | 880 KiB |
| 10_p0_large_03 | AC | 23 ms | 924 KiB |
| 10_p0_large_04 | AC | 23 ms | 864 KiB |
| 10_p0_large_05 | AC | 24 ms | 928 KiB |
| 10_p0_large_06 | AC | 23 ms | 928 KiB |
| 10_p0_small_00 | AC | 23 ms | 928 KiB |
| 10_p0_small_01 | AC | 25 ms | 932 KiB |
| 10_p0_small_02 | AC | 25 ms | 924 KiB |
| 20_bad_large_00 | AC | 34 ms | 5564 KiB |
| 20_bad_large_01 | AC | 33 ms | 5660 KiB |
| 20_bad_large_02 | AC | 36 ms | 5468 KiB |
| 20_bad_large_03 | AC | 34 ms | 5600 KiB |
| 20_bad_large_04 | AC | 35 ms | 5560 KiB |
| 20_bad_large_05 | AC | 37 ms | 5540 KiB |
| 20_bad_large_06 | AC | 35 ms | 5468 KiB |
| 20_bad_large_07 | AC | 35 ms | 5656 KiB |
| 20_bad_large_08 | AC | 34 ms | 5564 KiB |
| 20_bad_large_09 | AC | 37 ms | 5476 KiB |
| 20_bad_large_10 | AC | 35 ms | 5564 KiB |
| 20_bad_large_11 | AC | 34 ms | 5656 KiB |
| 20_bad_large_12 | AC | 35 ms | 5560 KiB |
| 20_bad_large_13 | AC | 36 ms | 5584 KiB |
| 20_bad_large_14 | AC | 35 ms | 5560 KiB |
| 20_bad_large_15 | AC | 37 ms | 5480 KiB |
| 20_bad_large_16 | AC | 35 ms | 5560 KiB |
| 20_bad_large_17 | AC | 33 ms | 5560 KiB |
| 20_bad_large_18 | AC | 35 ms | 5660 KiB |
| 20_bad_large_19 | AC | 35 ms | 5560 KiB |
| 20_bad_large_20 | AC | 36 ms | 5560 KiB |
| 20_bad_large_21 | AC | 35 ms | 5564 KiB |
| 20_bad_large_22 | AC | 33 ms | 5540 KiB |
| 20_bad_large_23 | AC | 35 ms | 5560 KiB |
| 20_bad_large_24 | AC | 34 ms | 5560 KiB |
| 20_bad_large_25 | AC | 35 ms | 5556 KiB |
| 20_bad_large_26 | AC | 36 ms | 5476 KiB |
| 20_bad_large_27 | AC | 25 ms | 924 KiB |
| 20_bad_large_28 | AC | 27 ms | 872 KiB |
| 20_bad_large_29 | AC | 25 ms | 928 KiB |
| 20_bad_long2_00 | AC | 35 ms | 5564 KiB |
| 20_bad_long2_01 | AC | 36 ms | 5564 KiB |
| 20_bad_long2_02 | AC | 35 ms | 5480 KiB |
| 20_bad_long2_03 | AC | 35 ms | 5564 KiB |
| 20_bad_long_00 | AC | 36 ms | 5464 KiB |
| 20_bad_long_01 | AC | 37 ms | 5604 KiB |
| 20_bad_long_02 | AC | 35 ms | 5468 KiB |
| 20_bad_long_03 | AC | 35 ms | 5560 KiB |
| 20_bad_max_00 | AC | 35 ms | 5560 KiB |
| 20_bad_max_01 | AC | 35 ms | 5564 KiB |
| 20_bad_max_02 | AC | 34 ms | 5560 KiB |
| 20_bad_max_03 | AC | 35 ms | 5560 KiB |
| 20_bad_medium_00 | AC | 37 ms | 5480 KiB |
| 20_bad_medium_01 | AC | 34 ms | 5564 KiB |
| 20_bad_medium_02 | AC | 25 ms | 924 KiB |
| 20_bad_medium_03 | AC | 36 ms | 5556 KiB |
| 20_bad_medium_04 | AC | 35 ms | 5564 KiB |
| 20_bad_medium_05 | AC | 25 ms | 920 KiB |
| 20_bad_medium_06 | AC | 36 ms | 5480 KiB |
| 20_bad_medium_07 | AC | 35 ms | 5560 KiB |
| 20_bad_medium_08 | AC | 27 ms | 868 KiB |
| 20_bad_medium_09 | AC | 34 ms | 5564 KiB |
| 20_bad_medium_10 | AC | 34 ms | 5564 KiB |
| 20_bad_most_00 | AC | 25 ms | 928 KiB |
| 20_bad_small_00 | AC | 27 ms | 928 KiB |
| 20_bad_small_01 | AC | 35 ms | 5564 KiB |
| 20_bad_small_02 | AC | 34 ms | 5560 KiB |
| 30_p50_large_00 | AC | 25 ms | 924 KiB |
| 30_p50_large_01 | AC | 25 ms | 924 KiB |
| 30_p50_large_02 | AC | 25 ms | 920 KiB |
| 30_p50_large_03 | AC | 25 ms | 924 KiB |
| 30_p50_large_04 | AC | 24 ms | 924 KiB |
| 30_p50_large_05 | AC | 25 ms | 860 KiB |
| 30_p50_large_06 | AC | 26 ms | 828 KiB |
| 30_p50_small_00 | AC | 25 ms | 920 KiB |
| 30_p50_small_01 | AC | 25 ms | 920 KiB |
| 30_p50_small_02 | AC | 24 ms | 928 KiB |
| 40_good_large_00 | AC | 27 ms | 1080 KiB |
| 40_good_large_01 | AC | 30 ms | 1172 KiB |
| 40_good_large_02 | AC | 27 ms | 1084 KiB |
| 40_good_large_03 | AC | 27 ms | 1184 KiB |
| 40_good_large_04 | AC | 29 ms | 1176 KiB |
| 40_good_large_05 | AC | 27 ms | 1080 KiB |
| 40_good_large_06 | AC | 27 ms | 1180 KiB |
| 40_good_large_07 | AC | 27 ms | 1076 KiB |
| 40_good_large_08 | AC | 28 ms | 1080 KiB |
| 40_good_large_09 | AC | 27 ms | 1176 KiB |
| 40_good_large_10 | AC | 25 ms | 1180 KiB |
| 40_good_large_11 | AC | 27 ms | 1084 KiB |
| 40_good_max_00 | AC | 27 ms | 1084 KiB |
| 40_good_max_01 | AC | 27 ms | 1080 KiB |
| 40_good_max_02 | AC | 29 ms | 1172 KiB |
| 40_good_max_03 | AC | 27 ms | 1080 KiB |
| 40_good_medium_00 | AC | 24 ms | 1052 KiB |
| 40_good_medium_01 | AC | 25 ms | 1056 KiB |
| 40_good_medium_02 | AC | 26 ms | 1056 KiB |
| 40_good_medium_03 | AC | 24 ms | 1052 KiB |
| 40_good_medium_04 | AC | 25 ms | 928 KiB |
| 40_good_small_00 | AC | 24 ms | 924 KiB |
| 40_good_small_01 | AC | 26 ms | 1048 KiB |
| 40_good_small_02 | AC | 27 ms | 860 KiB |
| 50_p100_large_00 | AC | 26 ms | 924 KiB |
| 50_p100_large_01 | AC | 25 ms | 856 KiB |
| 50_p100_large_02 | AC | 26 ms | 920 KiB |
| 50_p100_large_03 | AC | 23 ms | 928 KiB |
| 50_p100_large_04 | AC | 25 ms | 924 KiB |
| 50_p100_large_05 | AC | 26 ms | 924 KiB |
| 50_p100_large_06 | AC | 26 ms | 800 KiB |
| 50_p100_small_00 | AC | 26 ms | 932 KiB |
| 50_p100_small_01 | AC | 25 ms | 924 KiB |
| 50_p100_small_02 | AC | 26 ms | 932 KiB |