Advertisement
Seanliu

bruh

Jan 22nd, 2022
1,530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long int
  3. using namespace std;
  4.  
  5. bool sortvec (const vector<int>& v1, const vector<int>& v2){
  6.     return v1[0] < v2[0];
  7. }
  8.  
  9. signed main(){
  10.     //freopen("in.txt", "r", stdin);
  11.     int R, C, F, S, G; cin >> R >> C >> F >> S >> G;
  12.     //input F
  13.     vector<vector<vector<int>>> list_f(F);
  14.     for (int i = 0; i < F; i++){
  15.         int j, r, c;
  16.         cin >> j;
  17.         while(j--){
  18.             cin >> r >> c;
  19.             list_f[i].push_back({((r-1)*C+c-1), r, c});
  20.         }
  21.         sort(list_f[i].begin(), list_f[i].end(), sortvec);
  22.     }
  23.    
  24.     //input S
  25.     vector<vector<vector<int>>> list_s(F);
  26.     for (int i = 0; i < S; i++){
  27.         int r, c, D, f;
  28.         cin >> r >> c >> D >> f;
  29.         list_s[f-1].push_back({D, r, c});
  30.     }
  31.    
  32.     //input T
  33.     vector<vector<int>> list_dist(F);
  34.     vector<int> list_ans;
  35.     for (int f = 0; f < F; f++){
  36.         sort(list_s[f].begin(), list_s[f].end(), sortvec);
  37.         int dist;
  38.         for (int i = 0; i < list_s[f].size(); i++){
  39.             int m = list_s[f][i][1];
  40.             int n = list_s[f][i][2];
  41.             dist = abs(list_f[f][i][1]-m)+abs(list_f[f][i][2]-n);
  42.             list_dist[f].push_back(dist);
  43.         }
  44.         int T; cin >> T;
  45.         if (T <= list_dist[f].size()) {
  46.             sort(list_dist[f].begin(), list_dist[f].end());
  47.             list_ans.push_back(accumulate(list_dist[f].begin(), list_dist[f].begin()+T, 0LL));
  48.         }
  49.     }
  50.     sort(list_ans.begin(), list_ans.end());
  51.     cout << accumulate(list_ans.begin(), list_ans.begin()+G, 0LL) << endl;
  52.     return 0;
  53. }
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement