제출 #1219584

#제출 시각아이디문제언어결과실행 시간메모리
1219584MateiKing80Measures (CEOI22_measures)C++20
24 / 100
1593 ms8468 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
#define int ll

using pii = pair<int, int>;
#define fr first
#define sc second

const int inf = 1e16;

signed main() {
	int n, m, d;
	cin >> n >> m >> d;
	swap(m, n);
	n += m;
	vector<pii> a, asort;
	vector<int> pos(n + 1);
	asort.push_back({0, 0});
	a.push_back({0, 0});
	for (int i = 1; i <= n; i ++) {
		int x;
		cin >> x;
		a.push_back({x, i});
		asort.push_back({x, i});
	}
	sort(asort.begin(), asort.end());
	for (int i = 1; i <= n; i ++)
		pos[asort[i].sc] = i;
	for (int i = m + 1; i <= n; i ++) {
		int ans = 0, mn = inf, act = 0;
		for (int j = 1; j <= n; j ++) {
			if (asort[j].sc <= i) {
				act ++;
				int ps = act * d - asort[j].fr;
				ans = max(ans, ps - mn);
				mn = min(mn, ps);
			}
		}
		cout << ans / 2;
		if (ans % 2 == 1)
			cout << ".5";
		cout << " ";
	}
	cout << '\n';
}

/*
ans = max(i<j)(1/2*((j - i) * d - (aj - ai)));
cred
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...