QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#742924#8524. Weather Forecastucup-team2526WA 0ms3888kbC++201.1kb2024-11-13 17:39:232024-11-13 17:39:24

Judging History

你现在查看的是最新测评结果

  • [2024-11-13 17:39:24]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3888kb
  • [2024-11-13 17:39:23]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long

#define dbg(x...) \
do { \
std::cout << #x << " -> "; \
err(x); \
} while (0)

void err() {
	std::cout << std::endl;
}

template<class T, class... Ts>
void err(T arg, Ts &... args) {
	std::cout << fixed << setprecision(10) << arg << ' ';
	err(args...);
}

void GENSHEN_START() {
	int n,k;cin >> n >> k;
	vector <int> a(n + 5);
	for (int i = 1;i <= n;i++) cin >> a[i];
	auto check = [&](double x) -> bool {
		int cnt = 0,ok = 0;
		for (int i = 1;i <= n;i++) {
			int j = i,sum = 0;
			for (;j <= n;j++) {
				sum += a[j];
				double ave = sum * 1.0 / (j - i + 1);
				if (ave >= x) {
					cnt++;
					break;
				}
			}
			i = j;
		}
		//dbg(x,cnt);
		if (cnt >= k) return 1;
		else return 0;
	};
	double l = 0,r = 1000,ans = 0;
	while (r - l >= 1e-10) {
		double mid = (l + r) * 1.0 / 2;
		if (check(mid)) {
			l = mid;
			ans = max(ans,mid);
		}
		else r = mid;
		//dbg(l,r);
	}
	cout << setprecision(12) << ans;
}

signed main()
{
	ios::sync_with_stdio(false);cin.tie(nullptr);
	int T = 1;
	//cin >> T;
	while (T--) GENSHEN_START();
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3804kb

input:

7 3
1 3 1 2 2 2 1

output:

1.66666666667

result:

ok found '1.66667', expected '1.66667', error '0.00000'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

1 1
1

output:

0.999999999976

result:

ok found '1.00000', expected '1.00000', error '0.00000'

Test #3:

score: -100
Wrong Answer
time: 0ms
memory: 3888kb

input:

2 1
2 1

output:

1.99999999995

result:

wrong answer 1st numbers differ - expected: '1.50000', found: '2.00000', error = '0.50000'