Submission #506337

#TimeUsernameProblemLanguageResultExecution timeMemory
506337mewnianPalembang Bridges (APIO15_bridge)C++14
22 / 100
43 ms3472 KiB
//#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") //#pragma GCC target("avx,avx2,fma") #include <bits/stdc++.h> #define sze(x) (ll) x.size() #define idx(x, a) get<x>(a) #define LID(x) (x << 1LL) #define RID(x) (x << 1LL) + 1LL #define ID(x) (x + MAXN) #define CONV(x) (x - MAXN) #define countbit(x) __builtin_popcountll(x) #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll, ll> pi; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll rand(ll l, ll r) { return uniform_int_distribution<ll>(l, r)(rng); } inline ll lcm(ll u, ll v) { return u * v / __gcd(u, v); } const ll MAXN = 2e5 + 3; const ll INF = 1e18; pi a[MAXN]; ll b[MAXN]; ll k, n, m, res = 0; ll solve(ll u, ll v) { ll rt = 0; for (ll i = 1; i <= n; ++i) { ll mn = min(abs(a[i].fi - u) + abs(a[i].se - u) + 1, abs(a[i].fi - v) + abs(a[i].se - v) + 1); rt += mn; } return rt; } ll comp(ll x, ll y) { return (x > y ? 1 : (x < y ? -1 : 0)); } void solve1() { ll x = b[m / 2]; for (ll i = 1; i <= n; ++i) { ll rt = abs(a[i].fi - x) + abs(a[i].se - x) + 1; res += rt; } cout << res; } void solve2() { ll rt = INF; for (ll l = b[1]; l <= b[m]; ++l) { ll pre = INF; for (ll r = l; r <= b[m]; ++r) { if (b[l] == b[r]) continue; ll tans = solve(b[l], b[r]); // cerr << b[l] << " " << b[r] << " = " << tans << endl; // if (pre < tans) break; pre = min(pre, tans); } rt = min(rt, pre); } res += rt; cout << res; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); #ifdef OFFLINE freopen("input.inp", "r", stdin); #endif ll _; cin >> k >> _; n = 0, m = 0; ll mn = INF, mx = -INF; set<ll> s; for (ll i = 1; i <= _; ++i) { char c1, c2; ll p1, p2; cin >> c1 >> p1 >> c2 >> p2; if (c1 == c2) res += abs(p1 - p2); else { b[++m] = p1, b[++m] = p2; a[++n] = {p1, p2}; } } sort(b + 1, b + m + 1); if (k == 1) solve1(); else solve2(); }

Compilation message (stderr)

bridge.cpp: In function 'int main()':
bridge.cpp:101:8: warning: unused variable 'mn' [-Wunused-variable]
  101 |     ll mn = INF, mx = -INF;
      |        ^~
bridge.cpp:101:18: warning: unused variable 'mx' [-Wunused-variable]
  101 |     ll mn = INF, mx = -INF;
      |                  ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...