Submission #739909

# Submission time Handle Problem Language Result Execution time Memory
739909 2023-05-11T15:08:31 Z danikoynov Measures (CEOI22_measures) C++14
10 / 100
1500 ms 1896 KB
/**
 ____ ____ ____ ____ ____ ____
||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 = 2e5 + 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];

    for (int i = 1; i <= m; i ++)
    {
        n ++;
        a[n] = b[i];
        solve_query();
    }

}

int main()
{
    ///freopen("test.txt", "r", stdin);
    solve();
    return 0;
}

# Verdict Execution time Memory Grader output
1 Correct 4 ms 212 KB Output is correct
2 Correct 4 ms 212 KB Output is correct
3 Correct 3 ms 212 KB Output is correct
4 Correct 4 ms 212 KB Output is correct
5 Correct 3 ms 212 KB Output is correct
6 Correct 4 ms 212 KB Output is correct
7 Correct 3 ms 212 KB Output is correct
8 Correct 3 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 212 KB Output is correct
2 Correct 4 ms 212 KB Output is correct
3 Correct 3 ms 212 KB Output is correct
4 Correct 4 ms 212 KB Output is correct
5 Correct 3 ms 212 KB Output is correct
6 Correct 4 ms 212 KB Output is correct
7 Correct 3 ms 212 KB Output is correct
8 Correct 3 ms 212 KB Output is correct
9 Incorrect 363 ms 1732 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1560 ms 1896 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1560 ms 1896 KB Time limit exceeded
2 Halted 0 ms 0 KB -