Naxocist

Pipe

May 1st, 2022 (edited)
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. const int N = 15005;
  6. int x[N], y[N], dist[N];
  7. bool vis[N];
  8.  
  9. int main() {
  10.     // freopen("input.in", "r", stdin);
  11.    
  12.     int n, k; scanf("%d%d", &n, &k);
  13.    
  14.     for(int i=0; i<n; ++i){
  15.         scanf("%d%d", &x[i], &y[i]);
  16.         dist[i] = 2e9;
  17.     }
  18.  
  19.     vector<int> ans;
  20.     vis[0] = 1;
  21.     int a = x[0], b = y[0];
  22.  
  23.     for(int i=1; i<n; ++i){
  24.         int idx, mn = 2e9;
  25.  
  26.         for(int j=1; j<n; ++j){
  27.             if(vis[j]) continue;
  28.             dist[j] = min(dist[j], abs(a - x[j]) + abs(b - y[j]));
  29.  
  30.             if(dist[j] < mn){
  31.                 mn = dist[j];
  32.                 idx = j;
  33.             }
  34.         }
  35.  
  36.         vis[idx] = 1;
  37.         a = x[idx], b = y[idx];
  38.         ans.push_back(mn);
  39.     }
  40.  
  41.     sort(ans.rbegin(), ans.rend());
  42.  
  43.     int s = 0;
  44.     for(int i=k-1; i < ans.size(); ++i) s += ans[i];
  45.  
  46.     cout << s;
  47. }
  48.  
Add Comment
Please, Sign In to add comment