Submission #739915

#TimeUsernameProblemLanguageResultExecution timeMemory
739915danikoynovMeasures (CEOI22_measures)C++14
24 / 100
404 ms2804 KiB
/** ____ ____ ____ ____ ____ ____ ||l |||e |||i |||n |||a |||d || ||__|||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\|/__\| **/ #include<bits/stdc++.h> #define endl '\n' using namespace std; typedef long long ll; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } const int maxn = 4e5 + 10; int n, m; ll d, a[maxn], b[maxn]; bool check(double x) { double last = -1e18; for (int i = 1; i <= n; i ++) { if (last + d > a[i] + x) return false; last = max(last + d, a[i] - x); //cout << last << " " << a[i] << endl; } return true; } void solve_query() { sort(a + 1, a + n + 1); ll lf = 0, rf = 1e18; //cout << check(684538602442.5) << endl; //exit(0); while(lf <= rf) { ll mf = (lf + rf) / 2; //cout << lf << " " << rf << endl; if (check(mf)) rf = mf - 1; else lf = mf + 1; } double ans = lf; if (ans > 0 && check(ans - 0.5)) { ans = ans - 0.5; printf("%0.1f ", ans); } else { cout << (ll)(round(ans)) << " "; } } void solve() { cin >> n >> m >> d; for (int i = 1; i <= n; i ++) cin >> a[i]; for (int i = 1; i <= m; i ++) cin >> b[i]; bool sorted = true; for (int i = 2; i <= m; i ++) { if (b[i] < b[i - 1]) sorted = false; } if (n == 0 && sorted) { cout << 0 << " "; double last = b[1]; double p = 0; for (int i = 2; i <= m; i ++) { if (last + d > b[i] + p) { ///cout << last + d << " " << p + b[i] << endl; p = p + (double)((last + d - b[i] - p)) / 2.0; last = last - (double)((last + d - b[i] - p)) / 2.0; } last = max(last + d, b[i] - p); if ((ll)(floor(p)) + 0.5 == p) printf("%0.1f ", p); else cout << (ll)(p) << " "; } } else { for (int i = 1; i <= m; i ++) { n ++; a[n] = b[i]; solve_query(); } } } int main() { ///freopen("test.txt", "r", stdin); solve(); return 0; }

Compilation message (stderr)

Main.cpp: In function 'void solve()':
Main.cpp:73:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   73 |     for (int i = 1; i <= m; i ++)
      |     ^~~
Main.cpp:76:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   76 |         bool sorted = true;
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...