QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#324314#8242. V-Diagramucup-team484#WA 175ms3856kbC++171014b2024-02-10 17:46:422024-02-10 17:46:43

Judging History

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

  • [2024-02-10 17:46:43]
  • 评测
  • 测评结果:WA
  • 用时:175ms
  • 内存:3856kb
  • [2024-02-10 17:46:42]
  • 提交

answer

#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
using namespace std;
typedef long long ll;
typedef long double ld;
const int mod = 1e9 + 7;
const int N = 1e6 + 5;

void solve() {
	int n; cin >> n;
	vector<int> a(n), b(n), c(n);
	for (int i = 0; i < n; i++)
		cin >> a[i];
	ll sm = 0;
	ld lo = 1, hi = 1e9;
	int m = -1;
	for (int i = 1; i + 1 < n; i++) {
		if (a[i - 1] > a[i] && a[i] < a[i + 1]) {
			assert(m == -1);
			m = i;
		}
	}
	assert(m != -1);
	for (int it = 0; it < 100; it++) {
		ld mi = (lo + hi) / 2, pref = 0, mn = 0;
		int ok = 0;
		for (int i = 0; i < m; i++) {
			pref += a[i] - mi;
			mn = min(mn, pref);
		}
		pref += a[m] - mi;
		for (int i = m + 1; !ok && i < n; i++) {
			pref += a[i] - mi;
			if (pref >= mn)
				ok = 1;
		}
		if (ok == 1)
			lo = mi;
		else
			hi = mi;
	}
	cout << fixed << setprecision(20) << lo << "\n";
}

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	int t; cin >> t; while (t--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2
4
8 2 7 10
6
9 6 5 3 4 8

output:

6.75000000000000000000
5.83333333333333333304

result:

ok 2 numbers

Test #2:

score: 0
Accepted
time: 175ms
memory: 3792kb

input:

100000
3
948511478 739365502 813471668
3
881046825 27458122 398507422
3
987554257 399092415 924260278
3
984128569 125199021 716360525
3
529589236 45783262 313507287
3
645443456 85994112 226010681
3
914820717 228360911 572267310
3
418958362 56703604 195276041
3
64461646 26764720 26995581
3
914535039 ...

output:

833782882.66666666662786155939
435670789.66666666665696538985
770302316.66666666662786155939
608562705.00000000000000000000
296293261.66666666665696538985
319149416.33333333331393077970
571816312.66666666662786155939
223646002.33333333332848269492
39407315.66666666666424134746
383253737.666666666656...

result:

ok 100000 numbers

Test #3:

score: -100
Wrong Answer
time: 66ms
memory: 3856kb

input:

10000
4
194123849 79274911 191162487 570110764
86
957917218 915359202 914726017 873273226 867724859 867674150 809652204 805531383 745262007 743835491 727071232 714782071 645394643 639432679 594879540 587173904 583418126 560538589 518721836 469558994 427721766 411582333 404948350 402948978 357228675 ...

output:

280182720.66666666665696538985
538557639.95454545452957972884
495489050.35294117644662037492
537734928.64102564111817628145
472025965.69999999998253770173
546154003.12500000000000000000
543366581.51612903230125084519
254833443.19999999998253770173
447343683.31578947356319986284
502458665.38461538459...

result:

wrong answer 1st numbers differ - expected: '258668002.7500000', found: '280182720.6666667', error = '0.0831750'