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
AC × 113
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