#include using namespace std; static string to_hhmm(int minutes) { int h = minutes / 60; int m = minutes % 60; ostringstream oss; oss << setw(2) << setfill('0') << h << ":" << setw(2) << setfill('0') << m; return oss.str(); } static int flight_duration_5min_ceil(long long x1, long long y1, long long x2, long long y2) { long double dx = (long double)x1 - (long double)x2; long double dy = (long double)y1 - (long double)y2; long double dist = sqrtl(dx*dx + dy*dy); // Euclidean distance d long double raw = 60.0L * dist / 800.0L + 40.0L; // 60*d/800 + 40 long double units = raw / 5.0L; // floating誤差で本来ちょうど整数のときに+εになって切り上がり過ぎるのを防ぐ long long k = (long long)ceill(units - 1e-12L); return (int)(k * 5); // minutes, multiple of 5 } struct City { long long x, y, w; }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; long long R; if (!(cin >> N >> R)) return 0; vector c(N + 1); for (int i = 1; i <= N; i++) { cin >> c[i].x >> c[i].y >> c[i].w; } int M; cin >> M; for (int i = 0; i < M; i++) { int a, b; string s, t; cin >> a >> s >> b >> t; // スクエア航空は読んで捨てる(今回使わない) } int K; cin >> K; const int START = 6 * 60; // 06:00 const int END = 21 * 60; // 21:00 int hub = 1; // 行き先を 2..N の先頭から K 個(足りなければ巡回) vector dests; for (int v = 2; v <= N; v++) dests.push_back(v); if (dests.empty()) { // N=1は起こらないはずだが念のため:全機0便 for (int i = 0; i < K; i++) cout << 0 << "\n"; return 0; } for (int p = 0; p < K; p++) { int dest = dests[p % (int)dests.size()]; // 1機のフライト列を作る vector> flights; // (a, s_min, b, t_min) int cur_city = hub; int cur_time = START; while (cur_time <= END) { int nxt_city = (cur_city == hub ? dest : hub); int dur = flight_duration_5min_ceil( c[cur_city].x, c[cur_city].y, c[nxt_city].x, c[nxt_city].y ); if (cur_time + dur > END) break; // 到着が21:00超なら打ち切り flights.emplace_back(cur_city, cur_time, nxt_city, cur_time + dur); cur_time += dur; cur_city = nxt_city; } cout << flights.size() << "\n"; for (auto &f : flights) { int a, smin, b, tmin; tie(a, smin, b, tmin) = f; cout << a << " " << to_hhmm(smin) << " " << b << " " << to_hhmm(tmin) << "\n"; } } return 0; }