Submission #237227

# Submission time Handle Problem Language Result Execution time Memory
237227 2020-06-05T10:04:33 Z kartel Krov (COCI17_krov) C++14
84 / 140
1375 ms 768 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define in(x) freopen(x, "r", stdin)
#define out(x) freopen(x, "w", stdout)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")
#define F first
#define S second
#define pb push_back
#define N +5005
#define MaxS N * N
#define M ll(1e9 + 7)
#define sz(x) (int)x.size()
//#define re return
#define oo ll(1e18)
#define el '\n'
#define pii pair <int, int>
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef long long ll;
typedef long double ld;

int n, i, lh, rh, h[N];
ll ans = 1e18;

ll f(int fh)
{
    ll fH = fh, cur = 0;
    for (int j = i; j >= 1; j--, fH--)
        cur += abs(h[j] - fH);

    fH = fh - 1;

    for (int j = i + 1; j <= n; j++, fH--)
        cur += abs(h[j] - fH);

    return cur;
}

int main()
{
    srand(time(0));
    ios_base::sync_with_stdio(0);
    iostream::sync_with_stdio(0);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);

//    in("input.txt");
//    out("output.txt");

    cin >> n;
    for (i = 1; i <= n; i++)
    {
        cin >> h[i];
    }

    for (i = 1; i <= n; i++)
    {
        int minh = max(i, n - i + 1);

        lh = minh;
        rh = 1e9;

        while (rh - lh > 10)
        {
            int m1 = (lh + rh) >> 1;
            int m2 = m1 + 1;
            if (f(m1) < f(m2)) rh = m1;
                          else lh = m2;
        }

        for (; lh <= rh; lh++) ans = min(ans, f(lh));
    }

    cout << ans;
}

//  x ^ 2 + y ^ 2 = 1
//  x * a_i + y * b_i
//  a_i = -b_i * tan(alpha)
//  a_i / -b_i = tan(alpha)
//  alpha = atan(a_i / (-b_i))
# Verdict Execution time Memory Grader output
1 Correct 62 ms 384 KB Output is correct
2 Correct 73 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 60 ms 384 KB Output is correct
2 Correct 71 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 149 ms 384 KB Output is correct
2 Correct 158 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 249 ms 504 KB Output is correct
2 Correct 280 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 496 ms 384 KB Output is correct
2 Correct 345 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1375 ms 456 KB Output is correct
2 Correct 1251 ms 504 KB Output is correct
3 Correct 379 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 768 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 768 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -