제출 #883125

#제출 시각아이디문제언어결과실행 시간메모리
883125fanwenMeasures (CEOI22_measures)C++17
24 / 100
279 ms4700 KiB
#include <bits/stdc++.h>

using namespace std;

#define fi first
#define se second
#define ll long long
#define file(name)                  \
    if(fopen(name".inp", "r"))      \
        freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout); \

const int MAX = 2e5 + 5;

int n, m, D, a[MAX];

namespace sub1 {

	long long calc(const vector <int> &a) {
		auto check = [&] (long long val) -> bool {
			long long last = 1e18;
			for (int i = (int) a.size() - 1; i >= 0; --i) {
				if(last + val < a[i]) return false;
				last = min(last - D, a[i] + val - D);
			}
			return true;
		};

		long long l = -1, r = 1e18;
		while(r - l > 1) {
			long long mid = l + r >> 1;
			if(check(mid)) r = mid;
			else l = mid;
		}
		return r;
	}
	void solve() {
		D <<= 1;
		for (int i = 1; i <= n; ++i) a[i] <<= 1;
		vector <int> b(a + 1, a + n + 1);

		for (int i = 1; i <= m; ++i) {
			int x; cin >> x;
			b.push_back(x << 1);
			sort(b.begin(), b.end());
			long long ans = calc(b);
			cout << ans / 2;
			if(ans & 1) cout <<  ".5";
			cout << " ";
		}
		exit(0);
	}
}

void you_make_it(void) {
    cin >> n >> m >> D;
    for (int i = 1; i <= n; ++i) cin >> a[i];
    if(n > 0) sub1::solve();
}

signed main() {

#ifdef LOCAL
    freopen("TASK.inp", "r", stdin);
    freopen("TASK.out", "w", stdout);
#endif
    file("CEOI22_measures");
    auto start_time = chrono::steady_clock::now();

    cin.tie(0), cout.tie(0) -> sync_with_stdio(0);

    you_make_it();

    auto end_time = chrono::steady_clock::now();

    cerr << "\nExecution time : " << chrono::duration_cast <chrono::milliseconds> (end_time - start_time).count() << "[ms]" << endl;

    return (0 ^ 0);
}

// Dream it. Wish it. Do it.

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'long long int sub1::calc(const std::vector<int>&)':
Main.cpp:30:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   30 |    long long mid = l + r >> 1;
      |                    ~~^~~
Main.cpp: In function 'int main()':
Main.cpp:10:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |         freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout); \
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:66:5: note: in expansion of macro 'file'
   66 |     file("CEOI22_measures");
      |     ^~~~
Main.cpp:10:49: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |         freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout); \
      |                                          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:66:5: note: in expansion of macro 'file'
   66 |     file("CEOI22_measures");
      |     ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...