Submission #1182050


Source Code Expand

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <functional>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

long long dp[55][55];
long long way[55][55];


int main() {
	for (int i = 0; i < 55; i++) {
		for (int j = 0; j < 55; j++) {
			dp[i][j] = -1e18;
		}
	}
	int n, a, b;
	cin >> n >> a >> b;
	vector<long long> v(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
	}
	dp[0][0] = 0;
	way[0][0] = 1;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j <= n; j++) {
			if (dp[i + 1][j] < dp[i][j]) {
				dp[i + 1][j] = dp[i][j];
				way[i + 1][j] = way[i][j];
			} else if (dp[i + 1][j] == dp[i][j]) {
				way[i + 1][j] += way[i][j];
			}

			if (dp[i + 1][j + 1] < dp[i][j] + v[i]) {
				dp[i + 1][j + 1] = dp[i][j] + v[i];
				way[i + 1][j + 1] = way[i][j];
			} else if (dp[i + 1][j + 1] == dp[i][j] + v[i]) {
				way[i + 1][j + 1] += way[i][j];
			}
		}
	}

	long double mx = 0;
	for (int i = a; i <= b; i++) {
		mx = max(mx, (long double)dp[n][i] / i);
	}

	long long ans = 0;
	for (int i = a; i <= b; i++) {
		if (abs(mx - (long double)dp[n][i] / i) < 1e-10) {
			ans += way[n][i];
		}
	}

	printf("%.8f\n", (double)mx);
	cout << ans << endl;
}

Submission Info

Submission Time
Task D - Maximum Average Sets
User pekempey
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1308 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
sample_04.txt AC 1 ms 256 KB
subtask_1_1.txt AC 1 ms 256 KB
subtask_1_10.txt AC 1 ms 256 KB
subtask_1_11.txt AC 1 ms 256 KB
subtask_1_12.txt AC 1 ms 256 KB
subtask_1_13.txt AC 1 ms 256 KB
subtask_1_14.txt AC 1 ms 256 KB
subtask_1_15.txt AC 1 ms 256 KB
subtask_1_2.txt AC 1 ms 256 KB
subtask_1_3.txt AC 1 ms 256 KB
subtask_1_4.txt AC 1 ms 256 KB
subtask_1_5.txt AC 1 ms 256 KB
subtask_1_6.txt AC 1 ms 256 KB
subtask_1_7.txt AC 1 ms 256 KB
subtask_1_8.txt AC 1 ms 256 KB
subtask_1_9.txt AC 1 ms 256 KB