Submission #1300022

#TimeUsernameProblemLanguageResultExecution timeMemory
1300022yonatanlBest Place (NOI17_bestplace)C++20
100 / 100
27 ms4032 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <queue> #include <stack> #include <map> #include <string> #include <math.h> #include <array> #define rep(i, s, e) for (ll i = s; i < e; i++) #define upmax(a, b) a = max(a, b) #define upmin(a, b) a = min(a, b) using namespace std; using ll = long long; using vll = vector<ll>; using vvll = vector<vll>; using vvvll = vector<vvll>; using pll = pair<ll, ll>; using vpll = vector<pll>; using vvpll = vector<vpll>; const ll INF = 1e18; ll solve1D(vll & arr, ll n) { sort(arr.begin(), arr.end()); vll pref(n); pref[0] = arr[0]; rep(i, 1, n) pref[i] = pref[i - 1] + arr[i]; ll best = pref[n - 1] - n * arr[0]; ll bestX = arr[0]; rep(i, 0, n) { // Put x after arr[i]: ll l = i + 1; ll sl = pref[i]; ll cur = pref[n - 1] - 2 * sl; ll x = arr[i]; if (2 * l - n < 0 && i < n - 1) { x = arr[i + 1]; } cur += x * (2 * l - n); if (cur < best) { best = cur; bestX = x; } } return bestX; } void solve() { ll n; cin >> n; vll x(n), y(n); rep(i, 0, n) { cin >> x[i] >> y[i]; } ll ansX = solve1D(x, n); ll ansY = solve1D(y, n); cout << ansX << ' ' << ansY << '\n'; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); solve(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...