#include <bits/stdc++.h>
#define int long long
#define ti tuple<int, int, int>
using namespace std;
const int mxf = 505, mxh = 105;
int k, m, h, cx, cy, cd, cf, ch, nd, nf, nh, sp[mxf][mxh];
vector<pair<int, int>> fl[mxf];
vector<ti> g[mxf][mxh];
priority_queue<ti, vector<ti>, greater<ti>> pq;
int findBDis(int dx, int dy) {
int dis = 0;
if(dx != 0) dis += dx+2;
if(dy != 0) dis += dy+2;
return dis;
}
int findDis(int x1, int y1, int x2, int y2) {
int dis=0, dx = abs(x2-x1), dy = abs(y2-y1);
dis += dx/(m+1)*2;
dx %= m+1;
dis += dy/(m+1)*2;
dy %= m+1;
return dis + min({findBDis(dx, dy), findBDis(abs(dx-m-1), dy)+2, findBDis(dx, abs(dy-m-1))+2, findBDis(abs(dx-m-1), abs(dy-m-1)+4)});
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> k >> m;
cin >> cx >> cy;
fl[0].push_back({cx, cy});
cin >> cx >> cy;
fl[k].push_back({cx, cy});
for(int i=1; i<=k; i++) {
cin >> h;
h--;
while(h--) {
cin >> cx >> cy;
fl[i].push_back({cx, cy});
}
}
for(int i=0; i<505; i++) {
for(int j=0; j<105; j++) {
sp[i][j] = 1e18;
}
}
cout << sp[k][0];
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |